0
Hi,
I am writing logs to an external file in LogfileAppender. When the logs are written, the level gets appended to the logs. I want to hide the level in my file.
아래 로그에서 생성 된 로그에서 "INFO :"을 제거하고 싶습니다. 이를 위해 Log4jEvent에서 Level을 제거하고 싶습니다. 레벨을 OFF, null 등으로 변경하려고 시도했습니다. 레벨은 여전히 OFF : 및 null :로 표시됩니다.Log4jevent in Java에서 레벨을 숨기는 방법
My logs in my file look like this:
"INFO:
*************************************************
Show Logs1
*************************************************
INFO: Log1
INFO: Log2
INFO:
*************************************************
Show Logs2
*************************************************
INFO: Log3
INFO: Log4"
My code is:
public class Main{
private LogFileAppender appender;
MessageFilter messageFilter;
//These are just dummy data I add to make my log look good
String logMessageDummy = " \n \n \n*************************************************\n";
String logMessageDummy1 = "\n*************************************************\n";
//This method is used to set appender values
public void initialiseAppender() {
this.messageFilter = MessageFilter.createFilter("Error", Result.ACCEPT.name(), Result.DENY.name());
this.appender = LogFileAppender.createAppender("test", this.messageFilter, null);
setAppender(this.appender);
}
//This method sets my appender
public void setAppender(final LogFileAppender fileAppender) {
this.appender = fileAppender;
}
private void logMessage(final String message, final Level level, final String exceptionMessage) {
if (this.appender != null) {
this.appender.append(new Log4jLogEvent("test", null, "test", level, new SimpleMessage(message +
exceptionMessage), null, ThreadContext.getContext(), null, "TestThread", null, System.currentTimeMillis()));
}
//This method is used to generate logs
public void generateLogs(){
logMessage(this.logMessageDummy + "Logs1" + this.logMessageDummy1, Level.INFO, "");
logMessage("Log 1" , Level.INFO, "");
logMessage("Log 2" , Level.INFO, "");
logMessage(this.logMessageDummy + "Logs2" + this.logMessageDummy1, Level.INFO, "");
logMessage("Log 3" , Level.INFO, "");
logMessage("Log 4" , Level.INFO, "");
}
}
답변 해 주셔서 감사합니다. org.apache.logging.log4j.Level을 사용하고 있는데이 메서드는 Level.forName(); – Madhu
아마도 이전 버전입니다. 나는이 시나리오로 대답을 업데이트 할 것이다. – beimax