Java Logging API记录Log日志

2019-03-11 09:30|来源: 领悟书生

Java Logging API

JDK1.4版本以上才能支持。

java.util.logging.*包是JDK的日志记录API

基本概念

l logger –用来记录日志的对象

l loglevel – 日志等级:从FINESTSEVERE级别

         类:java.util.logging.Level

    各级别按降序排列如下:

·        SEVERE(最高值): 指示严重失败的消息级别。

·        WARNING 指示潜在问题的消息级别

·        INFO 报告消息的消息级别

·        CONFIG 用于静态配置消息的消息级别。

·        FINE 提供跟踪信息的消息级别。

·        FINER 指示一条相当详细的跟踪消息。

·        FINEST(最低值) :指示一条最详细的跟踪消息。

·        OFF:可用来关闭日志记录

·        ALL: 启用所有消息的日志记录。

l handler– 日志输出处理器,即用来将格式化后的日志信息输出,J2SE提供了下面的处理器

n  StreamHandler– 将信息输出到一个OutputStream对象

n  ConsoleHandler– 将信息输出到控制台

n  FileHandler– 将信息输出到文件

n  还有Socket处理器和内存处理器等

l Formater– 用来对日志信息进行格式化

n  SimpleFormater– 简单的格式化输出

n  XmlFormater– Xml格式化输出

l logManager– 日志管理器,它包含有那些被命名的logger,以及从配置文件中读取来的一些控制信息


本文链接:http://www.656463.com/article/541,来源于网络





相关问答

更多

Java日志记录界面(Java logging interface)

我强烈建议您不要编写另一个日志记录框架,而是重新编写应用程序以使用SLF4J日志记录API。 与其他日志记录实现接口的所有工作都已完成,并且在业界是众所周知的。 另一个好处是,您可以获得{} -placeholders,这样您就可以做到 log.debug("a={}, b={}", a, b); 并且仅在实际记录字符串时调用a.toString()和b.toString()。 这允许大量日志语句,除非您需要在调试设置中运行,否则这些日志语句实际上不会被执行。 I would strongly ...

从log4j 2库禁用日志记录,怎么做?(Disable logging from log4j 2 library, how?)

您可以使用配置文件顶部的status属性控制内部日志记录Log4j2打印到控制台。 我建议您关闭详细的debug -level日志记录,但保持warn和error级别的日志记录,以便在出现问题时得到通知。 为此,请将配置文件的开头更改为: <Configuration status="WARN"> ... You can control the internal logging Log4j2 prints to the console with the status attribute at ...

如何使用属性文件设置java日志记录?(How to set up java logging using a properties file? (java.util.logging))

好的,第一直觉就在这里: handlers = java.util.logging.FileHandler, java.util.logging.ConsoleHandler .level = ALL Java prop文件解析器不是很聪明,我不知道它会处理这个。 但我会再去看看文档.... 同时,尝试: handlers = java.util.logging.FileHandler java.util.logging.ConsoleHandler.level = ALL 更新 不,呃,需要 ...

在JUL日志处理程序中记录(Logging within a JUL log handler)

应使用Handler.reportError(String,Exception,int)报告处理程序内部发生的异常 。 这会报告已安装的可以自定义的ErrorManager的失败。 使用它应该照顾大多数无限循环。 但是,如果发布行为依赖于也生成日志记录的库,那么您必须求助于检测循环。 使用java.lang.ThreadLocal和某种枚举来跟踪状态更改。 public class HandlerReentrance extends Handler { private static fi ...

我自己的GAE / J日志处理程序(使用appengine.api.log?)(My own Logging Handler for GAE/J (using appengine.api.log?))

我最后只是在GAE的java.util.logging之上分层我的日志代码。 这感觉不是最优的,因为它增加了我的日志记录的复杂性和开销,但我想这是GAE的任何第三个日志记录框架必须做的事情(除非你只需要打印到stdout时添加的额外信息)。 这是我的代码的关键: public int println(int priority, String msg) { Throwable t = new Throwable(); StackTraceElement[] stackTrace = ...

用于详细(和多行)日志的Java日志记录API(Java Logging API for Detailed (and multiline) Logs)

你没有说明你为什么不使用log4j2的具体原因,所以我建议去那条路。 正如您所指出的,它提供了StructuredDataMessage ,您可以使用它来满足您的需求。 虽然在这种情况下,我会建议使用MapMessage因为您的示例没有包含内置到StructuredDataMessage类中的id和type内容。 这是一些快速示例代码: import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logge ...

如何从Java日志文件中提取错误信息(后期记录)(How to extract error info from Java log files (post-logging))

如果您使用的是log4j,我建议您查看Chainsaw: http : //logging.apache.org/chainsaw/index.html If you are using log4j I recommend you to take a look at Chainsaw: http://logging.apache.org/chainsaw/index.html

为什么TRACE日志记录使用日志记录1.1和log4j 1.2.15作为DEBUG发出(Why is TRACE logging emitting as DEBUG using logging 1.1 and log4j 1.2.15)

Trace比debug更精细。 这就解释了为什么在设置用于调试(或更精细)时看到跟踪语句的原因。 至于为什么它被标记为debug -commons logging负责。 见http://old.nabble.com/Re%3A-TRACE-vs-DEBUG-p4146626.html 。 Trace is finer grained than debug. That explains why you are seeing trace statements when the setting is f ...

每个请求在一个文件中记录不同的日志框架(logging of different log frameworks in one file per request)

我找到了集成所有日志框架以使用slf4j的解决方案。 我将log4j-over-slf4j.jar和jcl-over-slf4j.jar添加到我的库中。 所以log4j和org.apache.commons.logging根据这个使用slf4j配置进行日志记录。 但这不是sifficeint,我还有一个问题! Hadoop作业日志未在其请求线程日志文件中写入。 事实上,我的新问题是:“Hadoop作业不是固有的MDC日志值!”。 我通过为每个新请求创建新的logback.xml来解决它,将其设置为 ...

使用log4j进行restlet日志记录(restlet logging using log4j)

我们在本周末遇到了硬件故障,并将逐步恢复Maven存储库中的2.0.x工件(版本高达2.0.10已经可用)。 然而,2.0分支已达到其寿命的终点,因此升级到2.1.1绝对是一个好主意。 据我所知,自2.0以来,SLF4J扩展一直没有改变,只调整了日志级别,并添加了JULI的程序控制。 它可能会破坏某些东西。 你能在GitHub中输入一个问题吗? We encountered a hardware failure this week-end and will be progressively res ...