LINUX.ORG.RU

Создание лога в perl скрипте.


0

0

Я хочу создать модуль который создавл бы логи для моих perl скриптов. Подскажите как правильно сказать это сделать log_message о дескрипторе в log_create?

>> file LOG.pm package LOG;

sub log_create { open OUT, ">> ". shift; }

sub log_message { print OUT shift; }

sub log_close { close OUT if $LOG_CREATED; }

sub gdie { print $_[0]; log_message $_[0]; exit; }

1 __END__

>> file test.pl.

#!/usr/bin/perl -w

use "LOG";

LOG::log_open "1.log"; LOG::log_message "test\n"; LOG::log_close;


Пардон - описался:

s/сказать это сделать/сказать/

DRuG
() автор топика

Засовывай дескриптор файла в %ENV и потом оттуда его бери. Так кажись можно сделать.

Zmacs
()
Ответ на: комментарий от DRuG

Ну например так:

package LOG;

use strict;

sub log_create {
    $ENV{Log} = new IO::File;
    open $ENV{Log}, ">>".shift();
}
sub log_message {
    print {$ENV{Log}} shift()."\n";
}
sub log_close {
    close $ENV{Log};
}
1;

----------------------

#!/usr/bin/perl -w

use strict;

use LOG;

LOG::log_create "out.log";
LOG::log_message "Passed!";
LOG::log_close;

Zmacs
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.