1

这可能很明显,但我一直在寻找一个简单的例子org.apache.commons.logging来记录一个特定的文件(即/path/to/my-log.txt

public class MyClass {

    static Log log = LogFactory.getLog(MyClass.class);

    public static void main(String[] args) {

        // What to do here to get log to output to a file???

        log.info("I want to appear in a specific log file")
    }

}
4

2 回答 2

4

这取决于您在项目中的日志记录实现。如果类路径中没有 log4j,commons-logging 默认为 java.util.logging。在这种情况下,您需要配置 java.util.logging.FileHander。您可以通过 logging.properties 文件或以编程方式执行此操作

    Logger.getGlobal().addHandler(new FileHandler("log"));
    LogFactory.getLog(MyClass.class).info("/path/to/mylog.log");
于 2013-03-08T04:21:44.580 回答
2

Commons-Logging 只是一个日志门面,你应该使用 Log4j 或 JDK-Logging 来做真正的日志任务,你可以设置日志文件。

http://logging.apache.org/log4j/1.2/http://logging.apache.org/log4j/2.x/

它的配置文件将像:

log4j.rootLogger=info, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d{yy-MM-dd HH:mm:ss} %c:%L - %m%n
log4j.appender.R.File=/path/to/mylog.log
于 2013-03-08T01:21:39.990 回答