1、参考网址
1.1、java.util.logging.Logger使用详解
1.2、Java内置Logger详解
2、我的测试代码:
package jul;import java.text.SimpleDateFormat;import java.util.Date;import java.util.logging.ConsoleHandler;import java.util.logging.FileHandler;import java.util.logging.Level;import java.util.logging.Logger;import java.util.logging.SimpleFormatter;public class Tjul{ public static void main(String[] args) throws Exception { SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");//设置日期格式 String strDate = df.format(new Date());// new Date()为获取当前系统时间 // *** Logger log = Logger.getLogger("log test"); log.setLevel(Level.ALL); // setLevel --[1] ConsoleHandler consoleHandler =new ConsoleHandler(); consoleHandler.setLevel(Level.ALL); // setLevel --[2] log.addHandler(consoleHandler); // 下面的 true指明是追加方式 FileHandler fileHandler = new FileHandler("C:/testlog_"+strDate+"_%g.log", true); fileHandler.setLevel(Level.ALL); // setLevel --[3] // 默认是XML的格式的形式显示日志,下面的设置使用简单的格式显示日志。 // 也可以通过继承Formatter来自定义日志显示格式 fileHandler.setFormatter(new SimpleFormatter()); log.addHandler(fileHandler); log.info("测试日志"); }}
ZC: “java.util.logging.Logger”的配置文件的路径:“C:\Program Files (x86)\Java\jre7\lib\logging.properties”
ZC: 三个setLevel(...)含义不同:Logger.setLevel(...)、ConsoleHandler.setLevel(...)、FileHandler.setLevel(...)
3、相关网页:
3.1、官方文档(FileHandler方面):
3.2、java.util.logging (不用log4j配置,自己写log文件)
模式由包括以下特殊组件的字符串组成,则运行时要替换这些组件: "/" 本地路径名分隔符 "%t" 系统临时目录 "%h" "user.home" 系统属性的值 "%g" 区分循环日志的生成号 "%u" 解决冲突的唯一号码 "%%" 转换为单个百分数符号"%"
4、
4.1、日志组件系列:(2)commons logging和log4j实战
Apache的Common Logging只是一个高层的日志框架,本身并没有实现真正的写日志能力,而是依赖其它的日志系统如Log4j或者java本身的java.util.logging。可以通过配置文件来设定最终使用log4j还是java.util.logging.没有配置log4j的时候,就会调用java.util.logging包。换句话说,我们上面使用的日志API,其实是由commons logging提供的,而非log4j提供的。在真正写日志的时候,commons logging会调用log4j的日志输出功能。
4.2、commons-logging的使用
总结严格的说,commons-logging不是一个日志控件,没有日志功能,它只是统一了JDK Logging与Log4j的API,并把日志功能交给JDK Loggings或者是log4j。对于不能确定日志方式的系统,commons-logging是一个不错的选择,Spring,Hibernate,Struts等使用的都是commons-logging。下一篇我们会研究下Commons-logging的源码,来深入的整理下Commons-logging。
5、