在添加log4j到我的应用程序后,每次执行我的应用程序时,我都会得到以下输出:

log4j:WARN No appenders could be found for logger (slideselector.facedata.FaceDataParser).
log4j:WARN Please initialize the log4j system properly.

这似乎意味着一个配置文件丢失了。 这个配置文件应该放在哪里,一个好的开始内容是什么?

我正在使用纯java开发桌面应用程序。所以没有网络服务器等等…


当前回答

对我来说,解决办法是添加“log4j”。将“属性”放入“src”文件夹。

其他回答

如果你把所有东西都扔掉(比如你在考试)

org.apache.log4j.BasicConfigurator.configure(new NullAppender());

你在发展什么?您是否使用Apache Tomcat?

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyyMMdd HH:mm:ss.SSS} [[%5p] %c{1} [%t]] %m%n

我在我的Java应用程序中有一个这样的属性。

可以使用setLevel()设置日志级别。

这些级别对于轻松设置希望程序显示的信息类型非常有用。

例如:

Logger.getRootLogger().setLevel(Level.WARN); //will not show debug messages

可能的级别集是:

跟踪, 调试、 信息, 警告说, 错误和 致命的

根据日志服务手册

简单地说,创建log4j。src/main/assembly文件夹下的属性。根据您希望日志消息显示在控制台中还是显示在您修改的文件中。下面的代码将在控制台中显示您的消息。

# Root logger option
log4j.rootLogger=INFO, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

您可以设置log4j的位置。在Java应用程序中使用:

org.apache.log4j.PropertyConfigurator.configure(file/location/log4j.properties)

更多信息请访问:https://logging.apache.org/log4j/1.2/manual.html