2016-06-08 51 views
1

我刚开始学习有关Java中的Logger;但是,我不明白它是如何工作的。Java Logger不会打印任何内容到控制台

我有这样的代码我的类声明的后面:

private static final Logger LOGGER = Logger.getLogger(MyClass.class.getName()); 

然后在我的方法,我用它像这样(举例):

LOGGER.log(Level.FINE, "Testing"); 
LOGGER.info("More testing..."); 

... 
} catch(Exception e) { 
    LOGGER.log(Level.SEVERE, e.toString(), e); 
} 

但是不打印到控制台。它被保存在某个文件中,还是我错误地使用它?

如果它有所作为,我将使用Eclipse Mars 2和Java 1.6.0_22。我正在使用java.util.logging.Logger库。

+0

将库添加到OP。 –

+0

您是否尝试刷新Eclipse中的项目资源管理器以查看是否生成了任何文件? –

+0

我做过;甚至关闭Eclipse并重新打开。没有新文件。 –

回答

4

下面是你应该知道什么,java.util.Logging是由称为logging.properties的JRE/lib文件夹中找到了根记录文件,该文件默认为Level.INFO,因此精细消息默认不显示控制因为FINE低于INFO,所以你可以使用你的LOGGER对象,并且应该可以工作。结账Java Logging Overview

LOGGER.log(Level.FINEST, "finest"); 

请记住,有日志级别设置为FINE一个理由,所以,降低了水平还可以打印从核心库不必要的信息。让我知道它是否有帮助。

Regards Douglas

+0

谢谢!这真的很有帮助!我会从概述中查看更多。 –

+0

玩得开心编码 – Olu

-1

我的假设是你正在使用Log4J。如果这是正确的,记录器应该保存到文件默认情况下不打印到控制台(通常使用System.out.println(“message”)完成)。你有一个log4j.properties文件吗?

+0

我没有使用Log4J。在编辑中将库添加到OP。对于那个很抱歉。 –

1

这似乎适用于我在一个全新的Eclipse项目中。

import java.util.logging.Logger; 

public class Foobar { 

    public static final Logger LOGGER = Logger.getLogger(Foobar.class.getName());; 

    public Foobar() { 
     LOGGER.info("Constructed"); 
    } 

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

eclipse console

+0

我的课也是这样写的。感谢您的帮助,我必须添加处理程序才能正常工作。 –