2016-06-04 8 views
0

log4php를 사용하여 csv 파일에 로깅 된 세미콜론으로 구분 된 값이 있습니다. 첫 줄에 머리글을 쓰고 싶었습니다. 이것을 어떻게 할 수 있습니까?log4php를 사용하여 로그에 헤더를 작성하십시오.

메시지 ID, 파일명, 시간, 종료 시간, 상태를 시작 MSGID1000]의 Sample.txt 01 : 05 : 55; 07 : 08 : 44; OK MSGID1000]의 Sample.txt 01 : 55; 07 : 05 08 : 44; NOK

I이

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); 

답변

0

내가 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);