java - 如何使用 to log4j 写入文本文件?

标签 java logging file log4j

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

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");
    }
}

属性文件是:

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

谢谢。

最佳答案

将 ConsoleAppender 更改为 FileAppender。

我找到了 org.apache.log4j.RollingFileAppender 有用。 如果你用这个, 您必须为文件名添加一个属性,并且 可能还想设置 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

还有其他附加程序。 DailyRollingFileAppender 基于时间滚动。 FileAppender 不滚动。 如果你使用 RollingFileAppender, 您需要猜测 maxFileSize 和 如果它引起问题,则在将来的日期解决大小问题。

关于java - 如何使用 to log4j 写入文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4474646/

相关文章:

android - 将文本文件写入 SDCard 在 Android 中给出 IllegalArgumentException

windows - 由于额外读取,通过网络读取文件速度慢

ios - objective c iOS 文件结构困惑

java - 卡 table 和作家屏障实际上是​​如何工作的?

java - Swagger 阅读器抛出 java.lang.NoSuchMethodError

Java Logger 不轮换日志文件

python - zeep - 禁用警告 "Forcing soap:address location to HTTPS"

java - 找不到符号 : . getRuntime()

java - java如何测试条件

android - 了解内核 dmesg 时间戳