log4j,简单的说就是用于在应用程序中打印日志的工具,目前除了支持java外,还有C,C++,C#,Perl,Ruby等版本。这里只是简单的讨论下java中log4j。

log4j主要有三个组件,分别是Loggers,Appenders和Layouts。三个组件都带了s,显示是复数。Logger相当于记录器,它控制着打印什么样的信息,这些信息被分成了6个控制级别,分别是Trace,Debug,Info,Warn,Error和Fatal。通常情况下每个Logger都有与之对应的名称,用静态方法getLogger()来获得当前Logger,一种习惯的做法是Logger.getLogger(Object.class)。Logger之所以成为带Loggers,其之一是我们可以通过静态方法获取任意多个Logger;之二是Logger存在继承关系,一种依赖与它们名称的继承关系,比如Logger("com.foo")就是Logger("com.foo.a")的父亲,这中继承关系使得没有设定控制级别的子Logger拥有父Logger的控制级别。

Appender描述log输出的目的地,log的Appedner可以是console,file,GUI components,JMS等等,也可以定制自己Appender通过继承AppenderSkeleton类来实现。一个Logger可以有多个Appender,由于Logger的继承关系,同样使得子Logger拥有父Logger的Appender,同时还可以拥有自己的Appender。

Layout描述了log输出的格式,主要用到的类是PatternLayout,这个类里面定义关于转换输出格式用到的一些描述符。

关于怎么使用log4j

log4j为了简化开发提供了配置模式,配置文件可以是XML格式或者properties格式(key=value)。一个简单propterty格式配置文件(log4j.properties):

view plaincopy to clipboardprint?
  1. # Set root logger level to DEBUG and its only appender to stdout and R. log4j.rootLogger=DEBUG, stdout,R
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  4. # Pattern to output the caller's file name and line number.
  5. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
  6. log4j.appender.R=org.apache.log4j.RollingFileAppender
  7. log4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB# Keep one backup filelog4j.appender.R.MaxBackupIndex=1
  8. log4j.appender.R.layout=org.apache.log4j.PatternLayout
  9. log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
# Set root logger level to DEBUG and its only appender to stdout and R. log4j.rootLogger=DEBUG, stdout,R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB# Keep one backup filelog4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
一个简单的XML格式配置文件(log4j.xml):
view plaincopy to clipboardprint?
  1. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
  2. <appender name="Console" class="org.apache.log4j.ConsoleAppender">
  3. <layout class="org.apache.log4j.PatternLayout">
  4. <param name="ConversionPattern" value="%m%n" />
  5. </layout>
  6. </appender>
  7. <appender name="rollingFileAppender" class="org.apache.log4j.RollingFileAppender">
  8. <param name="File" value="TEST.log" />
  9. <param name="Append" value="true" />
  10. <param name="MaxBackupIndex" value="10" />
  11. <param name="MaxFileSize" value="512000KB"/>
  12. <layout class="org.apache.log4j.PatternLayout">
  13. <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
  14. </layout>
  15. </appender>
  16. <logger name="com.test">
  17. <level value ="DEBUG"/>
  18. <appender-ref ref="fileAppender"/>
  19. </logger>
  20. </log4j:configuration>

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender name="Console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%m%n" /> </layout> </appender> <appender name="rollingFileAppender" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="TEST.log" /> <param name="Append" value="true" /> <param name="MaxBackupIndex" value="10" /> <param name="MaxFileSize" value="512000KB"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%p (%c:%L)- %m%n" /> </layout> </appender> <logger name="com.test"> <level value ="DEBUG"/> <appender-ref ref="fileAppender"/> </logger> </log4j:configuration>

在code里,使用PropertyConfigurator.configure(configFileUrl&str) 来加载相应的配置文件。另外,log4j还提供了一个最基本配置BasicConfigurator.configure(),这个简单的配置使用console appender,layout格式为 "%-4r [%t] %-5p %c %x - %m%n"。也可以使用java property来设置log4j.properties这个配置文件:java.property.log4j.configuration=file:/d:/log4j.properties。

转载于:https://www.cnblogs.com/yqskj/articles/2226053.html

【配置文件】log4j是什么log4j相关推荐

  1. springmvc 项目完整示例05 日志 --log4j整合 配置 log4j属性设置 log4j 配置文件 log4j应用...

    log4j 就是log for java嘛,老外都喜欢这样子,比如那个I18n  ---internationalization  不就是i和n之间有18个字母... http://logging.a ...

  2. java log4j 文件_java log4j 日志文件

    开发中经常会用到log日志文件,根据业务需要可能不产生很大日志文件给维护和[排错带来了麻烦.所以我们希望能够每天或每个月产生一个日志文件,这样文件不至于过大. 或者根据日志文件大小来判断,超过规定大小 ...

  3. java log4j 配置_Java:log4j与log4j.properties的配置说明

    [来源:Java |作者:Java |时间:2007-7-20 |去论坛]--在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包- ...

  4. log4j日志文件 log4j.xml log4j.properties配置

    1,导入log4j  jar包; 2,配置log4j.xml或log4j.properties文件; ------------------------------------------------- ...

  5. Spring MVC 项目中配置log4j 出现错误log4j:ERROR Failed to excute sql com.mysql.jdbc.exceptions.jdbc4.MySQLSynt

    错误信息如下: 2016-09-08 17:11:45 [com.mchange.v2.c3p0.C3P0Registry]-[INFO] Initializing c3p0-0.9.1.2 [bui ...

  6. Log4j输出格式控制--log4j的PatternLayout参数含义以及详细配置

    http://logging.apache.org/log4j/docs/api/org/apache/log4j/PatternLayout.html 参数 说明 例子 %c 列出logger名字空 ...

  7. java log4j mysql_java – 配置log4j属性文件以存储在mysql数据库中

    如果你使用的是mysql.创建一个log4j.properties文件.这对我有用. 把它放在你的应用程序的根文件夹中.即所有包裹的根.我也有一个包含字段id,日期,用户,消息和类的表日志. log4 ...

  8. linux log4j 空文件,log4j在linux上不生成日誌文件

    log4j在linux下不生成日誌文件 在tomcat的某站點下使用log4j,配置文件log4j.properties在WEB-INF/classes下 內容如下 Java codelog4j.ro ...

  9. Log4j输出格式控制--log4j的PatternLayout参数含义

    做项目被log4j的输出格式化参数搞烦了,索性把API的相关部分大致翻译一下,原文参见http://logging.apache.org/log4j/docs/api/org/apache/log4j ...

最新文章

  1. NOIP2011聪明的质监员题解
  2. 在Android Studio中有六种依赖
  3. 分布式任务队列 Celery — 详解工作流
  4. android 2.1 监听电话状态并自动接听来电
  5. go语言笔记——包的概念本质上和java是一样的,通过大小写来区分private,fmt的Printf不就是嘛!...
  6. ubuntu 开启关闭mysql 服务
  7. 面向对象程序设计课程进度条
  8. apache下django配置【原创】
  9. 荐礼啦php知道与问问的采集插件
  10. php autoload 性能,PHP __autoload()方法真的影响性能吗?
  11. 用电池给树莓派供电_3个用于便携式项目的树莓派电池组介绍
  12. 解决npm install 报错,亲测有效
  13. HDU 5025 Saving Tang Monk 【状态压缩BFS】
  14. API通达信接口如何获取股票实时行情?
  15. 微信小程序零基础入门_第一章 小程序和开发者工具的介绍
  16. 文献阅读(77)稀疏跳零结构(1)
  17. 8、灰度图的腐蚀、膨胀、开闭运算、顶帽底帽
  18. 一般情况下UniApp打包上线APP流程
  19. UOS开机之后进入emergency mode“journalctl -xb”
  20. MySQL 爱生活群开放加入喽

热门文章

  1. Win 8 自定义设置面版
  2. 关于对FLASH开发,starling、starling feathers、starling MVC框架的理解
  3. AIX中查找端口号和进程
  4. openStack controller 管理网口TX数据量非常大 网络总是丢包
  5. 学习HTML5之塔克大战(详细记录)
  6. 算法系列15天速成——第三天 七大经典排序【下】
  7. 从宏观经济状况看目前股市
  8. 菜鸟requireJS教程---1、初识requirejs
  9. 1012: [JSOI2008]最大数maxnumber 线段树
  10. [BZOJ 1588][HNOI 2002] 营业额统计