log4j&#39 的默认日志文件转储路径是什么?

您好,我是编程新手,我想用 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 文档。谢谢

解决办法

要将日志输出重定向到文件,需要使用 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/

评论(1)

默认情况下,Log4j会将日志记录到标准输出,这意味着您应该能够在 Eclipse'console 视图上看到日志信息。要将日志记录到文件,您需要在classpath中的log4j.properties文件中定义FileAppender,从而显式地使用它。

classpath 中创建以下 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* 就可以在不同的项目中使用,而不会覆盖彼此的日志。

参考资料:

评论(7)

您已经从 此处复制了这段示例代码,对吗?

评论(1)