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一直沉默着, 其实 ...
随机推荐
- Fragment-管理Fragment2
上一篇,给大家讲了有关Fragment管理的几个函数,即add,replace,remove,这节再讲讲其它函数,然后再给大家看一个系统BUG. 一.hide().show() 1.基本使用 这两个函 ...
- 用Vue+axios写一个实时搜索
刚刚在学vue,试着写了一个实时搜索文件. 思路:1.input 通过v-model绑定.2.通过watch检测输入结果变化.3根据结果变化从api调用不同的数据. 代码如下: <!DOCTYP ...
- 注意string的insert函数的几种形式
string (1) string& insert (size_t pos, const string& str); substring (2) string& insert ...
- vim-录制命令的使用
使用vim时无意间触碰到q键,左下角出现“recording”这个标识,这是vim的一个强大功能. 他可以录 制一个宏(Macro),在开始记录后,会记录你所有的键盘输入,包括在insert模式下的输 ...
- C# 中 int、Convert.ToInt32()、int.Parse()的区别
int适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型); int.Parse(string sParameter)是个构造函数,参数类型只支持string类型; Conver ...
- liunx中安装禅道
本文转自:https://www.cnblogs.com/bendouyao/p/10026746.html 一.准备工作 禅道安装包ZenTaoPMS.8.1.3.zbox_64.gz,上传至服务器 ...
- [NPM] Test npm packages locally in another project using npm link
We will import our newly published package into a new project locally to make sure everything is wor ...
- HDU 1848(sg博弈) Fibonacci again and again
Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- stackFromBottom-listview 内容从底部开始填充
今天遇到了一个问题,就是listview虽然占满了整个屏幕,但是,当它的内容只有几条的时候,它会从底部开始显示,上面留有空白.后来进入xml发现,listview有个属性stackFromBottom ...
- 数值溢出(arithmetic overflow)问题与解决方案
0. 典型场景 两数相加(乘法).两数相减.一个数的阶乘,一个数的幂,这些统统可能造成数值的溢出: 避免数值溢出的方法: 当把一个计算出的很大的数赋值给一个 int(2^31-1)类型变量存储时,一般 ...