如何使用log4j写入文本文件?

Ran*_*ber 23 java logging log4j file

我想知道如何转换以下代码将这些行输出到文本文件,而不是标准输出:

import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator;

public class HelloWorld {

    static final Logger logger = Logger.getLogger(HelloWorld.class);

    public static void main(String[] args) {
        PropertyConfigurator.configure("log4j.properties");
        logger.debug("Sample debug message");
        logger.info("Sample info message");
        logger.warn("Sample warn message");
        logger.error("Sample error message");
        logger.fatal("Sample fatal message");
    }
}
Run Code Online (Sandbox Code Playgroud)

属性文件是:

log4j.rootLogger=DEBUG, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%m%n
Run Code Online (Sandbox Code Playgroud)

谢谢.

DwB*_*DwB 32

将ConsoleAppender更改为FileAppender.

我觉得org.apache.log4j.RollingFileAppender 它很有用.如果使用此方法,则必须为fileName添加属性,并且可能还要设置maxFileSize.这是一个示例(将它们放在log4j.properties文件中):

log4j.appender.NotConsole=org.apache.log4j.RollingFileAppender
log4j.appender.NotConsole.fileName=/some/path/to/a/fileName.log
log4j.appender.NotConsole.maxFileSize=20MB
Run Code Online (Sandbox Code Playgroud)

还有其他的追加者. DailyRollingFileAppender根据时间滚动. FileAppender不会滚动.如果你使用RollingFileAppender,你将需要猜测maxFileSize的一个好的值,然后如果它导致问题,在未来的日期解决大小.

  • 我上面显示的行在log4j.properties配置文件中. (2认同)

Ale*_*exR 6

不要使用FileAppender而不是ConsoleAppender.

这是一个简单的配置示例.它还配置了布局.您可以省略第一种方法.

log4j.appender.F=org.apache.log4j.FileAppender
log4j.appender.F.File=mylog.log
log4j.appender.F.layout=org.apache.log4j.PatternLayout
log4j.appender.F.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - %m%n
Run Code Online (Sandbox Code Playgroud)

  • 我在哪里选择我想要使用的文件?用getlogger? (2认同)