java.util.logging使用笔记2
java.util.logging是java自带的日志处理系统,其功能不如log4j/logback强大,但可以完成基本的日志需求。
另外,如果在一个项目中使用log4j, 而这个项目引用的第3方包也使用了log4j,它们之间的配置文件会互相覆盖,导致不可预知的结果。如果第3方包将配置文件公开了,可以通过修改log4j.properties来满足自己的需求(如hadoop),如果没有公开,而是打包在jar包里面了,那就尽量不要再使用log4j了,logback也有类似问题。
此时就可以使用java.util.logging完成基本的日志处理。
1、定义配置文件,文件名一般为logging.properties,放在项目的根目录下,如果是maven项目,则放在src/main/resources下。
handlers=java.util.logging.FileHandler,java.util.logging.ConsoleHandler,
java.util.logging.ConsoleHandler.level=WARNING
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter java.util.logging.FileHandler.level=INFO
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.FileHandler.limit=1024000
java.util.logging.FileHandler.count=10
java.util.logging.FileHandler.pattern=/Users/liaoliuqing/mylog3.log
java.util.logging.FileHandler.append=true
关于这个配置文件,有个很大的坑,不能有多余的空格,比如设定日志级别是,INFO后面有一个空格,就会导致这个项无效,其它也类似。
2、在类中使用
package com.lujinhong.demo.log4j;
import java.util.logging.Logger;
public class LoggerDemo {
private static Logger LOG = null;
public static void main(String[] args) {
System.setProperty("java.util.logging.config.file",
"logging.properties");
LOG = Logger.getLogger("com.lujinhong");
LOG.warning("测试信息");
LOG.info("hello");
}
}
这里也有个坑,搞了很久,setProperty必须放在LOG的赋值之前。
运行上面的程序,在console中输出:
七月 24, 2015 10:59:58 上午 com.lujinhong.demo.log4j.LoggerDemo main
警告: 测试信息
在文件中输出:
七月 24, 2015 10:59:58 上午 com.lujinhong.demo.log4j.LoggerDemo main
警告: 测试信息
七月 24, 2015 10:59:58 上午 com.lujinhong.demo.log4j.LoggerDemo main
信息: hello
一些注意事项:
1、除了在代码中指定配置文件外,也可以通过-Djava.util.logging.config.file=logging.properties指定。
甚至可以在代码中指定log相关的所有配置,而不使用配置文件,但不推荐这种方式。
2、文件的默认输出格式为XML,必须改,很丑,真不知道java的开发人员怎么想的。
3、其它的配置项都比较直观,其中count那个是指最多生成多少个日志文件。
java.util.logging使用笔记2的更多相关文章
- Java程序日志:java.util.logging.Logger类
一.Logger 的级别 比log4j的级别详细,全部定义在java.util.logging.Level里面.各级别按降序排列如下:SEVERE(最高值)WARNINGINFOCONFIGFINEF ...
- java.util.logging.Logger 使用详解
概述: 第1部分 创建Logger对象 第2部分 日志级别 第3部分 Handler 第4部分 Formatter 第5部分 自定义 第6部分 Logger的层次关系 参考 第1部分 创建Logger ...
- java.util.logging.Logger使用详解
一.创建Logger对象 static Logger getLogger(String name) 为指定子系统查找或创建一个 logger. static Logger ge ...
- java.util.logging.Logger基础教程
从JDK1.4开始即引入与日志相关的类java.util.logging.Logger,但由于Log4J的存在,一直未能广泛使用.综合网上各类说法,大致认为: (1)Logger:适用于小型系统,当日 ...
- Java日志工具之java.util.logging.Logger
今天总结下JDK自带的日志工具Logger,虽然它一直默默无闻,但有时使用它却比较方便.更详细的信息可以查看JDK API手册,本文只是简单示例入门. 创建Logger 我们可以使用Logger的工厂 ...
- 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)
前言: 本章介绍自己写的基于java.util.logging的轻量级日志记录库(baseLog). 该版本的日志记录库犹如其名,baseLog,是个实现日志记录基本功能的小库,适合小型项目使用,方便 ...
- 深入分析Java的内置日志API(java.util.logging)(一)
简介 任何的软件系统,日志都是非常重要的一部分.良好统一的日志规范会大大提高应用程序的可维护性.可靠性,并进而提高开发效率,指导业务.在早期,Java工程师往往都是利用 System.err.pr ...
- java.util.logging.Logger基础
1. 定义 java.util.logging.Logger是Java自带的日志类,可以记录程序运行中所产生的日志.通过查看所产生的日志文件,可以分析程序的运行状况,出现异常时,分析及定位异常. 2. ...
- 2.java.util.logging.Logger使用详解
一.java.util.logging.Logger简介 java.util.logging.Logger不是什么新鲜东西了,1.4就有了,可是因为log4j的存在,这个logger一直沉默着, 其实 ...
随机推荐
- 关于ajax访问express服务器的跨域问题
在学习es6的时候用promise封装了一个ajax <script type="text/javascript"> function getNews(URL) { l ...
- 2018 java实训总结(时间戳&&主键)
java实训题目:源管理系统. 答辩的时候被老师怼了以下几个的地方: 1.主键改变了 2.没时间戳却说自己的程序里有先后(这就是老师迂腐了,主键自增可以间接反馈出他加入的早晚,即使主键做出了改变但只是 ...
- ble_app_hrs心率程序 nrf51822
所用程序为: H:\keil\ARM\Device\Nordic\nrf51822\Board\pca10001\s110\ble_app_hrs 上面的路径是安装sdk之后生成在keil软件所在目录 ...
- Input/output subsystem having an integrated advanced programmable interrupt controller for use in a personal computer
A computer system is described having one or more host processors, a host chipset and an input/outpu ...
- .Net 开源控件 NPlot使用小结
NPlot是一款非常难得的.Net平台下的图表控件,能做各种曲线图,柱状图,饼图,散点图,股票图等,而且它免费又开源,使用起来也非常符合程序员的习惯.授权方式为BSD许可证. 下载链接: http:/ ...
- Exclusive or
题目连接 题意: 每次给一个n.求 (2≤n<10500) 分析: 先说一下自己的想法,假设将n换成二进制数,也就一两千位左右,那么一位一位处理是能够接受的. 将0-n写成二进制形式后,显然全部 ...
- UML中的用例图
用例图构成:參与者(actor).用例(use case).子系统(subsystem) 关联(Association) 泛化(Inheritance) 就是通常理解的继承关系,子用例和父用例类似,但 ...
- Android基础新手教程——3.8 Gestures(手势)
Android基础新手教程--3.8 Gesture(手势) 标签(空格分隔): Android基础新手教程 本节引言: 周六不歇息,刚剪完了个大平头回来.继续码字~ 好的,本节给大家带来点的是第三章 ...
- 分享一段php获取随意时间的前一天代码
<?php /** * 获取给定日期的前一天 * @param string $date * @return string $yesterday */ function getYesterday ...
- win7-时间更新
今天发现电脑的时间不对,后来就自己摸索了时间的自动更新方法.自己记录下来,以方便以后忘了查询 点击电脑右下角的时间->选择更改日期和时间设置->选择internet->更改设置-&g ...