Java 控制台上的Log4j输出,而不是配置的文件
我将Log4j配置为登录到一个文件中,但它实际上是登录到stdout。 它创建日志文件,但不写入日志文件,而是写入标准输出 这是我的配置文件:Java 控制台上的Log4j输出,而不是配置的文件,java,file,configuration,console,log4j,Java,File,Configuration,Console,Log4j,我将Log4j配置为登录到一个文件中,但它实际上是登录到stdout。 它创建日志文件,但不写入日志文件,而是写入标准输出 这是我的配置文件: log4j.rootCategory=INFO, file, mail log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=/path-to/jobs-batch.log log4j.appender.file.MaxFileSize=10MB
log4j.rootCategory=INFO, file, mail
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/path-to/jobs-batch.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=2
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[jobs-batch] %p [%t] %c{1}.%M(%L) | %m%n
log4j.logger.org.springframework.jdbc=WARN
# Configuration for receiving e-mails when ERROR messages occur.
log4j.appender.mail=org.apache.log4j.net.SMTPAppender
log4j.appender.mail.To=xxx@xxx.com
log4j.appender.mail.From=xxx@xxx.com
log4j.appender.mail.SMTPHost=mail.xxx.de
log4j.appender.mail.Threshold=ERROR
log4j.appender.mail.Subject=Jobs Batch Error
log4j.appender.mail.layout=org.apache.log4j.PatternLayout
log4j.appender.mail.layout.ConversionPattern=%d %-5p %c %x - %m%n
有什么想法吗
感谢您调整以满足您的需要:
log4j.rootCategory=DEBUG, C
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%d{MMddyyyy HH:mm} %-5p %c{1}:%L - %m%n
log4j.appender.C.Target=System.out
检查事项:
- Log4j属性文件的名称是什么?默认值是log4j.properties,这是log4j库在启动时将查找的内容
- 与Thorbjorn在评论中提出的问题相关,log4j属性文件位于何处?将其放入默认包将确保找到它(默认情况下,Log4j搜索类路径)
- 启动JVM时,可以选择使用
属性指定log4j属性文件的位置log4j.configuration
- 我一个人很笨。
我正在使用
-Dlog4j.configuration
设置我的文件。
但我也以编程方式配置log4j以使用相同的配置文件
我仍然不明白为什么它会这样,因为我只是设置了两次相同的配置文件。但有一次,我只做了一次,它按预期工作。您确定这是log4j读取的配置文件吗?您有权限写入吗?启动时,我使用道具进行操作。我确信我的文件是有用的我想你误解了这个问题。我不想要控制台输出。