Java-日志-JdkLogging
2016-07-22 00:00
639 查看
摘要: Java,日志,Log,JdkLogging
JDK的日志框架的包名是java.util.logging, [@since](http://my.oschina.net/u/266547) 1.4 ,代码在rt.jar中 相当于其它日志,即使这个日志不需要额外配置依赖、开箱即用,但在项目实践中使用的太少太少了。今天简单理下,顺便看下代码。
###简单使用
###概念
Level 日志级别
Formatter 日志信息格式化
Handler 处理日志到哪里去。类似Appender
LogRecord 来描述日志记录消息
###lever
定义在
OFF(Integer.MAX_VALUE 关闭)—>SEVERE(1000 严重)—>WARNING(900 警告)—>INFO(800 信息)—>CONFIG(700 配置)—>FINE(500 良好)—>FINER(400 较好)—>FINEST(300 最好)—>ALL(Integer.MIN_VALUE 打印所有)
###Formatter
包内提供二种格式化:
String.format(format, date, source, logger, level, message, thrown);
参数解释如下:
可以据此来实现自己的Formatter.
###Handler
包内提供了
###配置文件
如果配置了日志配置文件的环境变量
Tomcat配置了
默认在程序中使用一般不会配置这个变量,那就会使用默认的
###配置项
###其它
Filter设计的比较好,相当于为使用者预留了接口,如果需要可以自己过滤一些不需要记录下来的消息
###代码
http://git.oschina.net/zhengchaoken/ApacheCommonsNote
master/src/test/java/com/zx/jdk/test/JDKLogging.java
#参考文献
http://qingkangxu.iteye.com/blog/1503434
http://www.open-open.com/lib/view/open1430095855349.html
http://blog.csdn.net/u011794238/article/details/50717677
http://blog.csdn.net/qingkangxu/article/details/7514770
http://docs.oracle.com/javase/7/docs/api/index.html?java/util/logging/SimpleFormatter.html
https://kodejava.org/how-do-i-create-a-custom-logger-formatter/
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文本形式记录,
XMLFormatterXML格式形式记录。
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 #<handler>.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<String,LoggerWeakRef>来存储这些
Logger,并且设置为弱引用
WeakRef,这样
JVM随时回收这些
Logger。
Filter设计的比较好,相当于为使用者预留了接口,如果需要可以自己过滤一些不需要记录下来的消息
###代码
http://git.oschina.net/zhengchaoken/ApacheCommonsNote
master/src/test/java/com/zx/jdk/test/JDKLogging.java
#参考文献
http://qingkangxu.iteye.com/blog/1503434
http://www.open-open.com/lib/view/open1430095855349.html
http://blog.csdn.net/u011794238/article/details/50717677
http://blog.csdn.net/qingkangxu/article/details/7514770
http://docs.oracle.com/javase/7/docs/api/index.html?java/util/logging/SimpleFormatter.html
https://kodejava.org/how-do-i-create-a-custom-logger-formatter/
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树