什么是log4j的默认日志文件转储路径

嗨,我是编程概念的新手,我倾向于用log4j解决问题。 所以我正在阅读Log4j教程,在那里我找到了以下代码:

package test; import org.apache.log4j.Logger; import java.io.*; import java.sql.SQLException; public class Log4jExample { /* Get actual class name to be printed on */ static Logger log = Logger.getLogger(Log4jExample.class.getName()); public static void main(String[] args)throws IOException,SQLException { log.debug("Hello this is an debug message"); log.info("Hello this is an info message"); } } 

但是在eclipse中运行后,我无法找到生成的日志文件。 任何人都可以告诉文件被转储到哪里? 还帮助我一些最好的网站,我可以从头开始学习Log4j和Java Doc。 谢谢!!

要将日志输出重定向到文件,您需要使用FileAppender并需要在log4j.properties/xml文件中定义其他文件详细信息。 以下是相同的示例属性文件:

 # Root logger option log4j.rootLogger=INFO, file # Direct log messages to a log file log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=C:\\loging.log log4j.appender.file.MaxFileSize=1MB log4j.appender.file.MaxBackupIndex=1 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

请按照本教程了解有关log4j用法的更多信息:

http://www.mkyong.com/logging/log4j-log4j-properties-examples/

你从这里复制了这个示例代码,对吧?
现在,你可以看到他们定义的property文件,你做过同样的事吗? 如果没有,那么在项目中使用log4j的属性文件添加以下代码

所以log4j.properties文件的内容如下:

 # Define the root logger with appender file log = /usr/home/log4j log4j.rootLogger = DEBUG, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n 

根据您的要求进行更改,如log路径

默认情况下, Log4j记录到标准输出 ,这意味着您应该能够在Eclipse的控制台视图上看到日志消息。 要记录到文件,您需要通过在类路径log4j.properties文件中定义FileAppender显式使用它。

类路径中创建以下log4j.properties文件。 这允许您将消息记录到文件和控制台。

 log4j.rootLogger=debug, stdout, file log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n log4j.appender.file=org.apache.log4j.FileAppender log4j.appender.file.File=example.log log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%p %t %c - %m%n 

注意:上面在当前工作目录 (即Eclipse的项目目录)中创建了一个example.log ,这样相同的log4j.properties可以在不覆盖彼此日志的情况下处理不同的项目。

参考文献
Apache log4j 1.2 – 对log4j的简要介绍

如果未使用任何log4j属性生成日志文件,则可以在IDE的控制台视图中查看日志信息。 您可以在项目中定义log4j.properties,以便使用这些属性生成日志文件。 下面列出了一个快速示例。

 # Global logging configuration log4j.rootLogger=DEBUG, stdout, R # SQL Map logging configuration... log4j.logger.com.ibatis=INFO log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=INFO log4j.logger.com.ibatis.common.jdbc.ScriptRunner=INFO log4j.logger.com.ibatis.SQLMap.engine.impl.SQL MapClientDelegate=INFO log4j.logger.java.sql.Connection=INFO log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache.http=ERROR log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=MyLog.log log4j.appender.R.MaxFileSize=50000KB log4j.appender.R.Encoding=UTF-8 # Keep one backup file log4j.appender.R.MaxBackupIndex=1 log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F\:%L) - %m%n