Как я могу заставить log4perl создавать каталог журналов, если он не существует? - PullRequest
4 голосов
/ 12 февраля 2011

Если мой каталог журналирования (/home/hss/Data/log/DataImport.log) не существует при инициализации log4perl, то я получаю эту ошибку:

Cannot write to '/home/hss/Data/log/DataImport.log': No such file or directory

Есть ли способ заставить его создать каталог самостоятельно, не имеяуказать каталог где угодно, кроме как в моем файле log.conf?

Ответы [ 2 ]

1 голос
/ 28 апреля 2017

Начиная с версии 1.43, в Log :: Log4perl :: Appender :: File появился новый параметр с именем mkpath, который создает каталог, если для него установлено значение true в конфигурации.

Документ 1.43: http://search.cpan.org/dist/Log-Log4perl-1.43/lib/Log/Log4perl/Appender/File.pm

1 голос
/ 12 февраля 2011

Я совершенно уверен, что Log::Log4perl::Appender::File не создает никаких каталогов.Вероятно, самым простым методом было бы создать его подкласс и переопределить метод file_open с помощью кода обнаружения / создания каталога с последующим вызовом исходного метода.

...