`

例说java常用日志管理

    博客分类:
  • java
log 
阅读更多

   关于java的日志,我们有很多种,常见的有commons-loging、log4j、slf4j等,实际上jdk本身带有一套日志java.util.logging.Logger。现在对这些日志的用法做一个小总结。

 

一、jdk自带的日志管理类

 

import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;

/**
 * java自带日志管理
 * @author  Walter.Huang
 * @create date 2014-12-15
 */
public class LogMain {

	public static void main(String[] args) throws Exception {
		Logger log1=Logger.getLogger("javaLog");
		Logger log2=Logger.getLogger("javaLog");
		
		System.out.println(log1==log2); //同名日志获取到的对象为同一个,故打印“true”
		
		log2=Logger.getLogger("javaLog2");//重置一个
		
		/*
		日志级别,使用Level类承载,从高到低依次是:SEVERE(最高值)、WARNING、INFO、CONFIG、FINE、FINER、FINEST(最低值) 
		此外,还有一个级别 OFF,可用来关闭日志记录,使用级别 ALL 启用所有消息的日志记录。 
		logger默认的级别是INFO,比INFO更低的日志将不显示。 
		*/
		log1.setLevel(Level.INFO);
		
		/*
		Handler 对象从 Logger 中获取日志信息,并将这些信息导出。
		例如,它可将这些信息写入控制台或文件中,也可以将这些信息发送到网络日志服务中,或将其转发到操作系统日志中。 
		可通过执行 setLevel(Level.OFF) 来禁用 Handler,并可通过执行适当级别的 setLevel 来重新启用。 
		Handler 类通常使用 LogManager 属性来设置 Handler 的 Filter、Formatter 和 Level 的默认值。 
		java.util.logging.Handler 
	  	java.util.logging.MemoryHandler 内存 
	  	java.util.logging.StreamHandler  流
	    java.util.logging.ConsoleHandler 控制台
	    java.util.logging.FileHandler 文件
	    java.util.logging.SocketHandler 网络
		*/
		ConsoleHandler consoleHandler = new ConsoleHandler(); //控制台
		log1.addHandler(consoleHandler);

		FileHandler fileHandler = new FileHandler("C:/log/log.log");//文件
		
		/*
		 默认的日志格式为xml格式,结构太复杂,可以自定义
		 */
		fileHandler.setFormatter(new LogHandler());
		log2.addHandler(fileHandler);
		
		/*
		 写日志
		 */
		log1.info("日志1");
		log2.info("日志2");
		log2.finest("日志不见");//日志级别是Level.INFO比FINEST级别高,所以不会写日志
		
	}

}


/**
 * Formatter自定义类
 * 类的说明
 * @author  Walter.Huang
 * @create date 2014-12-15
 */
class LogHandler extends Formatter{
	@Override
	public String format(LogRecord record) {
		return record.getLevel()+":"+record.getMessage()+"\n";
	}
}

 二、common-loging

分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目源代码

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    JAVA上百实例源码以及开源项目

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    5.1 Java中类的定义 104 实例083 自定义图书类 104 实例084 温度单位转换工具 105 实例085 域的默认初始化值 106 实例086 编写同名的方法 107 实例087 构造方法的应用 108 5.2 修饰符的使用 109 实例088 单例模式的...

    项目管理系统开发 Java 后端开发规范教程.docx

    1 前言 1 2 编程规约 1 3 编码误区 4 4 MYSQL 规约 11 5 工程规约 14 6 性能规范 14 7 安全规范 15 8 接口 url 命名规则如下 ...本文是对阿里 Java 开发手册泰山版.pdf 里面常用的一些案例及规范的抽取。

    MYSQL常用命令大全

    MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    1.4.10 JMX(Java分布式管理) 1.4.11 JACC(Java容器授权合同) 1.4.12 JCA(Java连接器体系) 1.5 小结 第二章 MVC模式介绍 2.1 MVC模式概述 2.1.1 MVC模式的设计思想 2.1.2 MVC模式的处理过程 2.2 Model规范 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    1.4.10 JMX(Java分布式管理) 1.4.11 JACC(Java容器授权合同) 1.4.12 JCA(Java连接器体系) 1.5 小结 第二章 MVC模式介绍 2.1 MVC模式概述 2.1.1 MVC模式的设计思想 2.1.2 MVC模式的处理过程 2.2 Model规范 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    1.4.10 JMX(Java分布式管理) 1.4.11 JACC(Java容器授权合同) 1.4.12 JCA(Java连接器体系) 1.5 小结 第二章 MVC模式介绍 2.1 MVC模式概述 2.1.1 MVC模式的设计思想 2.1.2 MVC模式的处理过程 2.2 Model规范 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    1.4.10 JMX(Java分布式管理) 1.4.11 JACC(Java容器授权合同) 1.4.12 JCA(Java连接器体系) 1.5 小结 第二章 MVC模式介绍 2.1 MVC模式概述 2.1.1 MVC模式的设计思想 2.1.2 MVC模式的处理过程 2.2 Model规范 ...

    RuoYi若依管理系统-其他

    7、参数管理:对系统动态配置常用参数。8、通知公告:系统通知公告信息发布维护。9、操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。10、登录日志:系统登录日志记录查询包含登录异常。11、...

    ZhiqimKernel即知启蒙内核,是Zhiqim Framework的核心,负责工程的生命周期管理

    ZhiqimKernel即知启蒙内核,是Zhiqim Framework的核心,负责工程的生命周期管理:包括工程开发和发布的目录结构管理、统一的配置规约、单多例服务接口定义、服务启动运行更新和销毁管理。并提供基础开发工具:包括...

    MySQL命令大全

    MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下: grant all on mydb...

    新版Android开发教程.rar

    � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的有限子集,尚不承诺遵守 Java 任何 Java 规范 , 可能会造 成J ava 阵营的进一步分裂。 � 现有应用完善度不太够,需要的开发工作量较大。--------------------...

    2009.6.19—30举办3S研讨会暨Google Earth与Google Map等仿真建模与共享及ARCGIS与遥感高级程序员培训班

    6、DEM的原理与数据采集及应用及ARCCIS9-3D分析及其显示,空间建模以及实例操作与分析(以ARCCIS在资源环境与城市规划中的应用为例介绍) 主讲人:GIS硕士、南京路川公司专业技术开发工程师(空调机房) 7、以ARCCIS...

Global site tag (gtag.js) - Google Analytics