繁体   English   中英

使用 log4j 写入日志文件

[英]Writing to a log file using log4j

我有一个与使用 Log4j 相关的问题和不确定性。

  1. 我无法将日志写入文件。 我只收到一条警告说:

log4j:WARN No such property [file] in org.apache.log4j.ConsoleAppender.

登录到控制台工作正常。

  1. 我想将日志文件存储在上下文根之外。 在这种情况下,我会将绝对路径硬编码到属性文件中吗? 对不起,如果这是一个愚蠢的问题。

Log4j.properties

# Root logger option
log4j.rootCategory=INFO, file, stdout

# Direct log messages to stdout
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/Users/me/Documents/apache-tomcat-7.0.34/wtpwebapps/my_app/log.txt
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.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

日志初始化程序

String root = Environment.getRootDirectory(getServletContext());
    String propertiesUri = root + propertiesUriParameter;
    File propertiesFile = new File(propertiesUri);
    if (!propertiesFile.exists())
    {
        System.out.println("Initializing log4j with: " + propertiesUri);
        PropertyConfigurator.configure(propertiesUri);
    }

将其更改为:

log4j.appender.file.File=Users/Me/Documents/apache-tomcat-7.0.34/wtpwebapps/my_app/log.txt

log4j.appender.file.File=/Users/Me/Documents/apache-tomcat-7.0.34/wtpwebapps/my_app/log.txt

并确保以下路径存在

/Users/Me/Documents/apache-tomcat-7.0.34/wtpwebapps/my_app/

问候,

湿婆库马尔 SS

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM