使用 log4php 将 header 写入日志

Write a header to a log with log4php

我使用 log4php 将 semi-colon 分隔值记录到 csv 文件中。 我想在第一行写一个 header 。如何做到这一点?

例子

消息id、文件名、开始时间、结束时间、状态 MSGID1000;SAMPLE.TXT;01:05:55;07:08:44;确定 MSGID1000;SAMPLE.TXT;01:05:55;07:08:44;NOK

我这样做

csvLogger = Logger::getRootLogger();
csvLogger->setLevel(LoggerLevel::toLevel(LoggerLevel::DEBUG));
csvLogger->removeAllAppenders();

$appender = new LoggerAppenderFile("csvLogAppender");
$appender->setFile("LogMessage.csv");
$appender->setAppend(false);   

csvLogger->addAppender($appender); 

我找到了扩展 LoggerLayoutPattern 并覆盖 getHeader() 方法的解决方案。

class csvLoggerLayoutPattern extends LoggerLayoutPattern {
    public function getHeader() {
        return "message id, file name, start time, end time, status\n";
    }
}

csvLogger = Logger::getRootLogger();
csvLogger->setLevel(LoggerLevel::toLevel(LoggerLevel::DEBUG));
csvLogger->removeAllAppenders();

$appender = new LoggerAppenderFile("csvLogAppender");
$appender->setFile("LogMessage.csv");
$appender->setAppend(false);

$appenderlayout = new csvLoggerLayoutPattern();
$appenderlayout->activateOptions();
$appender->setLayout($appenderlayout);

csvLogger->addAppender($appender);