java+日志报警_Java-日志-JdkLogging

JDK的日志框架的包名是java.util.logging, [@since](http://my.oschina.net/u/266547) 1.4 ,代码在rt.jar中 相当于其它日志,即使这个日志不需要额外配置依赖、开箱即用,但在项目实践中使用的太少太少了。今天简单理下,顺便看下代码。 ###简单使用

java.util.logging.Logger logger = java.util.logging.Logger.getLogger(getClass().getName());

logger.info("info");

###概念

Level 日志级别

Formatter 日志信息格式化

Handler 处理日志到哪里去。类似Appender

LogRecord 来描述日志记录消息

###lever 定义在java.util.logging.Lever.java

OFF(Integer.MAX_VALUE 关闭)—>SEVERE(1000 严重)—>WARNING(900 警告)—>INFO(800 信息)—>CONFIG(700 配置)—>FINE(500 良好)—>FINER(400 较好)—>FINEST(300 最好)—>ALL(Integer.MIN_VALUE 打印所有)

###Formatter 包内提供二种格式化:SimpleFormatter 文本形式记录,XMLFormatter XML格式形式记录。

SimpleFormatter String.format(format, date, source, logger, level, message, thrown); 参数解释如下:

format - the java.util.Formatter format string specified in the java.util.logging.SimpleFormatter.format property or the default format.

默认值应该是:"%1$tb %1$td, %1$tY %1$tl:%1$tM:%1$tS %1$Tp %2$s%n%4$s: %5$s%6$s%n";

date - a Date object representing event time of the log record.

source - a string representing the caller, if available; otherwise, the logger's name.

logger - the logger's name.

level - the log level.

message - the formatted log message returned from the Formatter.formatMessage(LogRecord) method. It uses java.text formatting and does not use the java.util.Formatter format argument.

thrown - a string representing the throwable associated with the log record and its backtrace beginning with a newline character, if any; otherwise, an empty string.

可以据此来实现自己的Formatter.

###Handler 包内提供了 MemoryHandler和StreamHandler两个大类Handler。 StreamHandler又包括ConsoleHanler, FileHandler以及SocketHandler三个实现,它们分别将日志写入控制台、文件、Socket端口。

MemoryHandler中是一个LogRecord的1000个长度的数组,循环存储日志.

ConsoleHandler从System.err输出setOutputStream(System.err);

SocketHandler 输出new Socket(host, port)

FileHandler 输出new Socket(host, port) "%h/java%u.log"

###配置文件 如果配置了日志配置文件的环境变量java.util.logging.config.file就使用这个配置文件,如果没有配置就使用 %java.home%/jre/lib/logging.properties

Tomcat配置了java.util.logging.config.file

bin/catalina.bat中配置: set LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"

默认在程序中使用一般不会配置这个变量,那就会使用默认的%java.home%/jre/lib/logging.properties 配置文件。

###配置项 %java.home%/jre/lib/logging.properties 中的配置项摘录

handlers= java.util.logging.FileHandler #或java.util.logging.ConsoleHandler

.level= INFO # Default global logging level.

java.util.logging.ConsoleHandler.level = INFO #.xxx是配置具体某个handler的属性

java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

com.xyz.foo.level = SEVERE #对特定的包下的级别限定

###其它

Logger被设计为protected的构造函数,这样在一定程序上不允许直接实例’。程序中多通过Logger.getLogger来获取。这里调用全局的LogManager来获取Logger。

LogManager是用来管理Logger的,它用Hashtable来存储这些Logger,并且设置为弱引用WeakRef,这样JVM随时回收这些Logger。

Filter设计的比较好,相当于为使用者预留了接口,如果需要可以自己过滤一些不需要记录下来的消息

###代码 http://git.oschina.net/zhengchaoken/ApacheCommonsNote

master/src/test/java/com/zx/jdk/test/JDKLogging.java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值