AD

Java log日志

Java log日志小记,备忘。

其实commons-logging中默认都支持Log4j,因此只要同时加载commons-logging包和log4j包,可以不用配置即可用在应用中使用commons-logging的接口方法。

当然,标准的应用的是需要的配置,如果你log4j则这个配置是可选的。下面我说明如何通过配置文件来组合commons-logging和log4j。

配置文件内容很简单,就指定一个日志实现类即可,下面是个示例文件:

commons-logging.properties

--------------------------------------------------------------------------------

org.apache**mons.logging.Log=org.apache**mons.logging.impl.Log4JLogger

1、Apache通用日志接口(commons-logging.jar)介绍

Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本身包含了一个Simple Logger,但是功能很弱。在运行的时候它会先在CLASSPATH找log4j,

如果有,就使用log4j,如果没有,就找JDK1.4带的 java.util.logging,如果也找不到就用Simple Logger。commons-logging.jar的出现是一个历史的的遗留的遗憾

,当初Apache极力游说Sun把log4j加入JDK1.4,然而JDK1.4项目小组已经接近发布JDK1.4产品的时间了,因此拒绝了Apache的要求,

使用自己的java.util.logging,这个包的功能比log4j差的很远,性能也一般。后来Apache就开发出来了commons-logging.jar用来兼容两个logger。

因此用 commons-logging.jar写的log程序,底层的Logger是可以切换的,你可以选择log4j,java.util.logging或者它自带的Simple Logger。

不过我仍然强烈建议使用log4j,因为log4j性能很高,log输出信息时间几乎等于System.out,而处理一条log平均只需要5us。

2、Log4J介绍

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、

NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

3、SLF4j介绍

准确的说,slf4j并不是一种具体的日志系统,而是一个用户日志系统的facade,允许用户在部署最终应用时方便的变更其日志系统。

3.1、使用方式:

在系统开发中,统一按照slf4j的API进行开发,在部署时,选择不同的日志系统包,即可自动转换到不同的日志系统上。

比如:选择JDK自带的日志系统,则只需要将slf4j-api-1.5.10.jar和slf4j-jdk14-1.5.10.jar放置到classpath中即可,

如果中途无法忍受JDK自带的日志系统了,想换成log4j的日志系统,仅需要用slf4j-log4j12-1.5.10.jar替换slf4j- jdk14-1.5.10.jar即可(当然也需要log4j的jar及配置文件)

3.2、使用场景:

我们开发的是类库或者嵌入式组件,可以考虑使用slf4j,因为我们并不能决定用户选择哪种日志系统(不同软件开发公司会钟情于不同的日志系统);

但是如果我们开发独立应用,面向的是最终客户,则无需考虑slf4j,因为最终客户只关心功能实现,不会在意开发公司具体使用什么日志系统的。

Reference:

**commons.apache**/logging/guide.html#Configuring Log4J

**shift8.iteye**/blog/1316802

****onelee**/wordpress/?p=78

**zhangjunhd.blog.51cto**/113473/25135

**lavasoft.blog.51cto**/blog/62575/26134

标签: log4j, commons-logging
分类: 性能与监控
时间: 2012-08-27

相关文章

  1. c#程序定期把内存信息记录到log日志示例

    这篇文章主要介绍了c#程序定期把内存信息记录到log日志示例,需要的朋友可以参考下 设立一个定时器tmrMonitor,该定时器会在程序运行时不断把程序的占用内存和占用线程数写到LOG\MEM目录下. 我设置的定时器间隔 ...
  2. Python中使用logging模块打印log日志详解

    这篇文章主要介绍了Python中使用logging模块打印log日志详解,本文讲解了logging模块介绍.基本使用方法.高级使用方法.使用实例等,需要的朋友可以参考下 学一门新技术或者新语言,我们都要首先学会如何去适应 ...
  3. python根据文件大小打log日志

    这篇文章主要介绍了python根据文件大小打log日志的方法,可实现循环打日志,即第一个文件达到maxBytes大小后就写入第二个文件,以此类推,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了python根据文件 ...
  4. 使用python分析git log日志示例

    这篇文章主要介绍了使用python分析git log日志示例,需要的朋友可以参考下 用git来管理工程的开发,git log是非常有用的'历史'资料,需求就是来自这里,我们希望能对git log有一个定制性强的过滤.此段 ...
  5. android轻松管理安卓应用中的log日志 发布应用时log日志全部去掉的方法

    android合理的管理log日志,在开发的时候打印出来,在发布的时候,把所有的log日志全部关掉,下面就把方法给你一一道来 管理log一般有两种方法,博主推荐大家使用下面的第一种方法: 第一种方法: 第一步:定义一个l ...
  6. auth.log日志查看

    新手文章!!!请多指教! 以前一直想分析下自己主机的log日志,来看看究竟是哪些人想入侵我的主机(虽然我现在主机是个实验性质的,里面几乎没有什么有价值的东西). 我的主机系统为ubuntu server 12.04 64 ...
  7. 使用 Map-Reduce 统计Web 服务器 access.log 日志文件

    1.6. Map-Reduce 1.6.1. 使用 Map-Reduce 统计Web 服务器 access.log 日志文件 首先将web服务器access.log倒入到mongodb,参考 http://netkill ...
  8. 使用java实现日志工具类分享

    这篇文章主要介绍的Java代码工具类是用于书写日志信息到指定的文件,并且具有删除之前日志文件的功能,需要的朋友可以参考下 package com.teligen.eos.teleCode; import java.io. ...
  9. java自定义日志输出文件(log4j日志文件输出多个自定义日志文件)

    打印日志的在程序中是必不可少的,如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender,然后定义每一个Appender的日志级别.打印形式和日志的输出路径,下面看一个示例吧 log4j输出多个自定义日志文 ...
  10. 基于Java的日志分析工具--LogAnalyzerFramework,小轮子一个

    分析日志并不是Java擅长的工作,多数时候我们经常会把这项工作交给shell\Perl\Python之类的脚本去处理.但是很多时候因为所处的"大环境"是Java,在分析日志的时候需要去调用一些Java ...
  11. Java Log Management: Logger.getLogger () and LogFactory.getLog () difference (Detailed Log4j)

    First, Logger.getLogger () and LogFactory.getLog () difference 1.Logger.getLogger () is a way to use log4j log ...
  12. JAVA学习日志

    去年开了一学期的JAVA课程,蛋疼的什么么没学到.最近买了本书,在自学java,想把自己的学习笔记整理了发在这里,作为一个自己成长的记录.
  13. JAVA学习日志(数据类型.字符串)

    浮点型: public class TestFloat { public static void main (String args[]) { int i1=1; int i2=2; float f1=1f; float ...
  14. log日志打印到文本

    String str="hello"; try{ System.out.println(Integer.parseInt(str)); }catch(Exception e){ try{ System ...
  15. java Log Analysis

    http://www.doyj.com/2007/11/12/ online statistics-vs-log analysis-page-tagging-vs-log-analysis /
  16. Java Web App: 选择与配置日志库

    Java世界里,日志库就和许多其他库[1]一样,你有多个选择,多个还不错的选择,比如log4j, java.util.logging, logback, 另外还有一些统一的log api,比如slf4j, common- ...
  17. Java日志系统

    日志,源于log,有航海日志的意思.指记录海员记录每天的行程,生活及发生的事件.在软件开发领域,用来监控代码中变量变化,跟踪代码运行的轨迹,在开发环境中担当调试器作用,向控制台或文件输出信息. 几乎所有的软件开发语言(平 ...
  18. java日志,需要知道的几件事

    java日志,需要知道的几件事 如果对于commons-loging .log4j .slf4j .LogBack 等都已经非常清楚了,可以忽略本文.几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透 ...
  19. log4j的使用,即java该如何使用日志文件

    (一)log4j的用途:可以用来做日志文件,即可以往.log文件中输入我们在程序中运行的一些数据,比如说:你往数据库里面保存了一条信息,同样,你也可以用log4j的日志文件来记录你所保存的信息,并且更完整,可以包含1.保 ...