Log4J创建日志文件但不写入它 [英] Log4J creates log file but does not write to it

查看:841
本文介绍了Log4J创建日志文件但不写入它的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试配置log4j以将消息记录到文件中。现在,文件确实使用我提供的名称创建,但日志不会写入文件。我的代码:

I'm trying to configure log4j to log messages to a file. Right now, the file does get created with the name I provide, but the logs are not written to the file. My code:

public class Main extends Application
{
    private static Logger logger = Logger.getLogger( Main.class.getName() );
    @Override
    public void start(Stage primaryStage) throws Exception
    {
        logger.warning("test");
        logger.severe("oh noes");
    }


    public static void main(String[] args) {
        launch(args);
    }
}

我的 log4j的内容。属性文件:

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

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=log.log
log4j.appender.file.MaxFileSize=1024MB
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

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

当我运行这个时,我在控制台中得到这个输出:

When I run this, I get this output in the console:

Jun 23, 2014 3:19:16 AM com.foo.Main start
WARNING: test
Jun 23, 2014 3:19:16 AM com.foo.Main start
SEVERE: oh noes

文件 log.log 确实在我的主目录中创建。但它是空的。

The file log.log does get created in my main directory. But its empty.

任何想法我做错了什么?我正在使用log4j版本1.2.17。

Any ideas what I'm doing wrong? I'm using log4j version 1.2.17.

推荐答案

输出似乎是Java标准日志框架的默认格式( JUL)会发出。

The output seems to be of the default format that Java's standard logging framework (JUL) would emit.

因此,有两种可能性(想到这一点):

So, there are two possibilities (that come to mind):


  1. 您的代码导入 java.util.logging.Logger ,而不是 org.apache.log4j.Logger

  2. 在类路径中存在某种类型的库,它拦截Log4J调用并将它们转换为JUL调用。

  1. Your code imports java.util.logging.Logger, rather than org.apache.log4j.Logger.
  2. There exists a library of some sort, in your classpath, that intercepts Log4J calls and converts them to JUL calls.

这篇关于Log4J创建日志文件但不写入它的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆