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个请求级别日志…
SEVERE
是FINE
您的示例中显示的3个消息中最重要(优先级最高)和最不重要的消息类型。因此,如果您的日志级别为SEVERE
,则仅SEVERE
记录消息。如果level为FINE
,则记录所有3条消息。
当在实际生产环境中,您可能只想记录错误和警告时(希望它们很少见,但您想了解它们),这非常有用,因此可以将日志级别设置为WARNING
。但是,在您的开发环境中,例如调试问题时,即使它创建了大量的日志数据并降低了应用程序的速度,您仍希望在日志中查看所有信息。因此,您将日志级别设置为FINE
或FINEST
。
这是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