Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > log4perl


Автор: bronislav 29.8.2008, 21:48
Необходимо после завершения скрипта добавить в лог несколько пустых строк, что бы записи от одного запуска отделялись от последующих. Есть ли какой-то способ так сделать или прийдется "вручную" открывать файл и добовлять в него строки?

Автор: sir_nuf_nuf 31.8.2008, 10:02
bronislav, почитайте документацию по Log::Log4perl::Appender::File.

Код

header_text
    If you want Log4perl to print a header into every newly opened (or re-opened) logfile, 
    set header_text to either a string or a subroutine returning a string. If the message 
    doesn't have a newline, a newline at the end of the header will be provided.


параметр header_text - позволит вам вставлять разделитель в лог-файл перед запуском скрипта.

конфиг может выглядеть так:

Код

log4perl.appender.A1=Log::Log4perl::Appender::File
log4perl.appender.A1.filename=test.log${MY_PID}   # от прошлого вопроса =)
log4perl.appender.A1.mode=append
log4perl.appender.A1.header_text= '                   NEW LOG STARTED           '   # типа пустой строки. поэкспериментируйте со значением
log4perl.appender.A1.layout=Log::Log4perl::Layout::SimpleLayout

Автор: bronislav 1.9.2008, 18:07
Спасибо, за ответ.

Но я читал в документации этот момент. У меня данный параметр не работает.
Вот кусок конфигурационного файла:
Код

<log4perl:appender name="ip-app" class="Log::Log4perl::Appender::File">
        <param name="filename" value="log/${ip2}.log" />
        <param name="header_text" value="Log Started" />
        <log4perl:layout class="Log::Log4perl::Layout::PatternLayout" >
            <param name="ConversionPattern" value = "%p [%d] [${username}] -- %m%n"/>
        </log4perl:layout>
</log4perl:appender>

Сообщения в лог пишутся исправно, но вот записи "Log Started" мне найти не удалось.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)