gpt4 book ai didi

java - 如何以我想要的方式/格式使用 log4j?

转载 作者:行者123 更新时间:2023-12-01 15:15:44 29 4
gpt4 key购买 nike

我想了解 log4j 是如何工作的。我已经阅读了很多教程和该网站的所有答案,但我仍然没有得到有效的具体示例。

我已经尝试过这个:

import org.apache.log4j.*;

public class Exercise {
private static Logger logger = Logger.getLogger(SimpleLogger.class);

public static void main(String args[]) {

BasicConfigurator.configure();

// ConsoleAppender myAppender = new ConsoleAppender(null, "System.out");
// myAppender.setLayout(new SimpleLayout());
// logger.addAppender(myAppender);

for (int i = 0; i < 5; i++) {
logger.info("You are here!");
}

logger.info("End of program");
}
}

对于这个类:

import org.apache.log4j.spi.LoggingEvent;

public class SimpleLogger extends org.apache.log4j.Layout {

@Override
public void activateOptions() {

}

@Override
public String format(LoggingEvent event) {
return "log message = " + event.getMessage().toString() + "/n";
}

@Override
public boolean ignoresThrowable() {
return true;
}
}

但我的输出是:

0 [main] INFO SimpleLogger  - You are here!
1 [main] INFO SimpleLogger - You are here!
1 [main] INFO SimpleLogger - You are here!
1 [main] INFO SimpleLogger - You are here!
1 [main] INFO SimpleLogger - You are here!
1 [main] INFO SimpleLogger - End of program

我也尝试过,代码没有注释,但我得到的只是 double 形式的输出或其他东西。

问题:如何使输出(控制台或文件)采用我想要的格式?我是否需要修改外部文件(例如(log4j.properties))?

最佳答案

这一行:

private static Logger logger = Logger.getLogger(SimpleLogger.class);

只是通知默认记录器当前的日志记录上下文是 SimpleLogger。它不指定底层记录器实现。事实上,您根本不需要实现自定义记录器。您只需要使用一个配置器,它允许您在配置文件中指定格式。一种常见的技术是使用 XmlConfigurator,那么您的 XML 配置文件在各种上下文下的格式就可以非常具体。看here有关基于 XML 的配置的详细信息。

关于java - 如何以我想要的方式/格式使用 log4j?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11631753/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com