gpt4 book ai didi

java - 需要了解 log4j 附加程序的工作原理

转载 作者:行者123 更新时间:2023-11-30 03:37:07 26 4
gpt4 key购买 nike

我有一个简单的 log4j HelloWorld 程序..

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class HelloWorldLog4J {

private static final Logger logger = LogManager.getLogger("HelloWorld");

public static void main(String[] args) {
System.out.println("pre_loggerDOTinfo");
logger.info("Hello, World!mmm");
System.out.println("post_loggerDOTinfo");
}
}

这是我的属性文件,我将其放在同一目录中:

# 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:\Users\adel\Desktop\Misc_Stuff\Java_Code\logging.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

但由于某种原因,我没有发现在同一目录中创建日志文件。我在想,运行程序后,它会创建文件 logging.log

最佳答案

反斜杠是属性文件中的转义字符,因此如果要指定文件名

C:\Users\adel\Desktop\Misc_Stuff\Java_Code\logging.log

然后你需要加倍反斜杠:

C:\\Users\\adel\\Desktop\\Misc_Stuff\\Java_Code\\logging.log

或者,使用正斜杠而不是反斜杠 (C:/Users/...),因为 Windows 可以处理其中任何一个。属性解析器通过默默地忽略反斜杠来对无法识别的转义序列使用react,因此它将把您的原始值视为

C:UsersadelDesktopMisc_StuffJava_Codelogging.log

您可能会发现,当您启动 Java 进程时,它已在 C: 驱动器上的当前目录中创建了一个名称非常长的文件。

关于java - 需要了解 log4j 附加程序的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27590506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com