java.util.logging.Logger在哪里存储日志

这可能是一个愚蠢的问题,但是我对Java Logger有点迷茫

private static Logger logger = Logger.getLogger("order.web.OrderManager");

logger.info("Removed order " + id + ".");

我在哪里可以看到日志?同样来自java.util.logging.Logger库的这句话:

在每次记录调用时,记录器最初都会根据记录器的有效日志级别对请求级别(例如SEVERE或FINE)进行廉价检查。如果请求级别低于日志级别,则日志记录调用立即返回。

通过此初始(便宜)测试后,记录器将分配一个LogRecord来描述记录消息。然后,它将调用过滤器(如果存在)对记录是否应该发布进行更详细的检查。如果通过,它将随后将LogRecord发布到其输出Handlers。

这是否意味着如果我有3条request level日志:

logger.log(Level.FINE, "Something");

logger.log(Level.WARNING, "Something");

logger.log(Level.SEVERE, "Something");

log level是SEVERE,我可以看到所有三个日志,如果我log

level是WARNING,则看不到SEVERE日志,对吗?以及如何设置log level

回答:

我在哪里可以看到日志?

在日志文件或标准输出中,具体取决于您的实际日志处理程序配置。可以通过属性文件或直接通过日志记录API进行设置。

这是否意味着如果我有3个请求级别日志…

SEVEREFINE您的示例中显示的3个消息中最重要(优先级最高)和最不重要的消息类型。因此,如果您的日志级别为SEVERE,则仅SEVERE记录消息。如果level为FINE,则记录所有3条消息。

当在实际生产环境中,您可能只想记录错误和警告时(希望它们很少见,但您想了解它们),这非常有用,因此可以将日志级别设置为WARNING。但是,在您的开发环境中,例如调试问题时,即使它创建了大量的日志数据并降低了应用程序的速度,您仍希望在日志中查看所有信息。因此,您将日志级别设置为FINEFINEST

这是Java

Logging的很好的介绍。

上一页中的一个简单示例,用于配置记录器以级别登录到文件FINEST

Handler fh = new FileHandler("%t/wombat.log");

Logger.getLogger("").addHandler(fh);

Logger.getLogger("com.wombat").setLevel(Level.FINEST);

要登录到控制台,请将FileHandler以上内容替换为ConsoleHandler

Handler ch = new ConsoleHandler();

Logger.getLogger("").addHandler(ch);

不过,这只是一个示例-在实际应用中,最好通过config属性文件配置日志记录。

以上是 java.util.logging.Logger在哪里存储日志 的全部内容, 来源链接: utcz.com/qa/427346.html

回到顶部