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的更多相关文章

  1. Java程序日志:java.util.logging.Logger类

    一.Logger 的级别 比log4j的级别详细,全部定义在java.util.logging.Level里面.各级别按降序排列如下:SEVERE(最高值)WARNINGINFOCONFIGFINEF ...

  2. java.util.logging.Logger 使用详解

    概述: 第1部分 创建Logger对象 第2部分 日志级别 第3部分 Handler 第4部分 Formatter 第5部分 自定义 第6部分 Logger的层次关系 参考 第1部分 创建Logger ...

  3. java.util.logging.Logger使用详解

    一.创建Logger对象   static Logger getLogger(String name)           为指定子系统查找或创建一个 logger. static Logger ge ...

  4. java.util.logging.Logger基础教程

    从JDK1.4开始即引入与日志相关的类java.util.logging.Logger,但由于Log4J的存在,一直未能广泛使用.综合网上各类说法,大致认为: (1)Logger:适用于小型系统,当日 ...

  5. Java日志工具之java.util.logging.Logger

    今天总结下JDK自带的日志工具Logger,虽然它一直默默无闻,但有时使用它却比较方便.更详细的信息可以查看JDK API手册,本文只是简单示例入门. 创建Logger 我们可以使用Logger的工厂 ...

  6. 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)

    前言: 本章介绍自己写的基于java.util.logging的轻量级日志记录库(baseLog). 该版本的日志记录库犹如其名,baseLog,是个实现日志记录基本功能的小库,适合小型项目使用,方便 ...

  7. 深入分析Java的内置日志API(java.util.logging)(一)

    简介   任何的软件系统,日志都是非常重要的一部分.良好统一的日志规范会大大提高应用程序的可维护性.可靠性,并进而提高开发效率,指导业务.在早期,Java工程师往往都是利用 System.err.pr ...

  8. java.util.logging.Logger基础

    1. 定义 java.util.logging.Logger是Java自带的日志类,可以记录程序运行中所产生的日志.通过查看所产生的日志文件,可以分析程序的运行状况,出现异常时,分析及定位异常. 2. ...

  9. 2.java.util.logging.Logger使用详解

    一.java.util.logging.Logger简介 java.util.logging.Logger不是什么新鲜东西了,1.4就有了,可是因为log4j的存在,这个logger一直沉默着, 其实 ...

随机推荐

  1. #学习笔记#——JavaScript 数组部分编程(七)

    24.柯里化 首先想解释一下,“柯里化”的意思, [在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结 ...

  2. 初识Django框架——环境搭建前你需要了解的几点

    Django是一个开放源代码的Web应用框架,由Python写成. 采用了MVC的框架模式,即模型M,视图V和控制器C. 它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是C ...

  3. [C#防止反编译].NET 产品版权保护方案 (.NET源码加密保护)

    [C#防止反编译].NET 产品版权保护方案 (.NET源码加密保护) 标签: .net加密产品c#dll工具 2011-03-24 21:06 27009人阅读 评论(13) 收藏 举报 分类: C ...

  4. 洛谷——P2590 [ZJOI2008]树的统计

    https://www.luogu.org/problem/show?pid=2590#sub 题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这 ...

  5. 洛谷 P1358 扑克牌

    P1358 扑克牌 题目描述 组合数学是数学的重要组成部分,是一门研究离散对象的科学,它主要研究满足一定条件的组态(也称组合模型)的存在.计数以及构造等方面的问题.组合数学的主要内容有组合计数.组合设 ...

  6. 25.C++多线程

    #include <iostream> #include <thread> #include <Windows.h> using namespace std; vo ...

  7. ZOJ QS Network

    QS Network Time Limit: 2 Seconds      Memory Limit: 65536 KB Sunny Cup 2003 - Preliminary Round Apri ...

  8. vue中v-for的用法以及参数的作用

    <template> <div> <div class="content clearfix" v-on:click="goorderingD ...

  9. Docker+Solr

    原文:Docker+Solr docker 内的solr并不是部署在tomcat里,而是自启动的.默认的home是/opt/solr/server/solr # docker search solr ...

  10. 【hdu 1068】Girls and Boys

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=1068 [Description] 有n个人,一些人认识另外一些人,选取一个集合,使得集合里的每个人 ...