文档章节

Log4j基本使用方法

我爱睡觉
 我爱睡觉
发布于 2017/06/24 16:06
字数 1223
阅读 1
收藏 0

Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。

  一、定义配置文件

  其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:

  1.配置根Logger,其语法为:

  log4j.rootLogger = [ level ] , appenderName, appenderName, …

  其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指B日志信息输出到哪个地方。您可以同时指定多个输出目的地。

  2.配置日志信息输出目的地Appender,其语法为:

  log4j.appender.appenderName = fully.qualified.name.of.appender.class
  log4j.appender.appenderName.option1 = value1
  …
  log4j.appender.appenderName.option = valueN

  其中,Log4j提供的appender有以下几种:
  org.apache.log4j.ConsoleAppender(控制台),
  org.apache.log4j.FileAppender(文件),
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

  3.配置日志信息的格式(布局),其语法为:

  log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
  log4j.appender.appenderName.layout.option1 = value1
  …
  log4j.appender.appenderName.layout.option = valueN

  其中,Log4j提供的layout有以e几种:
  org.apache.log4j.HTMLLayout(以HTML表格形式布局),
  org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

  Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息

  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  %r 输出自应用启动到输出该log信息耗费的毫秒数
  %c 输出所属的类目,通常就是所在类的全名
  %t 输出产生该日志事件的线程名
  %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

  二、在代码中使用Log4j

  1.得到记录器

  使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:

  public static Logger getLogger( String name)

  通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如:

  static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )

  2.读取配置文件

  当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:

  BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
  PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。
  DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。

  3.插入记录信息(格式化日志信息)

  当上两个必要步骤执行完毕,您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:

  Logger.debug ( Object message ) ;
  Logger.info ( Object message ) ;
  Logger.warn ( Object message ) ;
  Logger.error ( Object message ) ;

例:

  • #设置级别和目的地   
  • log4j.rootLogger=debug,appender1,appender2   
  •   
  • #输出到控制台   
  • log4j.appender.appender1=org.apache.log4j.ConsoleAppender   
  • #设置输出样式   
  • log4j.appender.appender1.layout=org.apache.log4j.PatternLayout   
  • #自定义样式   
  • # %r 时间
  • # %t 方法名 main   
  • # %p 优先级 DEBUG/INFO/ERROR   
  • # %c 所属类的全名(包括包名)   
  • # %l 发生的位置,在某个类的某行   
  • # %m 输出代码中指定的讯息,如log(message)中的message   
  • # %n 输出一个换行符号   
  • log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n   
  •   
  • #输出到文件(这里默认为追加方式)   
  • log4j.appender.appender2=org.apache.log4j.FileAppender   
  • #设置文件输出路径   
  • #【1】文本文件   
  • log4j.appender.appender2.File=c:/Log4JDemo06.log   
  • #设置文件输出样式   
  • log4j.appender.appender2.layout=org.apache.log4j.PatternLayout   
  • log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n  
  • 本文转载自:http://blog.csdn.net/rachel_luo/article/details/9015287

    我爱睡觉
    粉丝 3
    博文 2120
    码字总数 0
    作品 0
    南昌
    私信 提问
    java 日志框架——log4j

    Log4J是JAVA下的一款日志组件 下载: http://logging.apache.org/log4j/2.x/download.html 下面的示例我使用最新版本2.7无法正常运行,最新版本使用方法可能不同。本文示例使用log4j-1.2.15测...

    xundh
    2018/05/09
    0
    0
    log4j 使用及配置分析记录

    log4j是一个非常强大的log记录软件,下面我们就来看看在项目中如何使log4j。 ps:其配置文件有两种 log4j.properties 和log4j.xml 两种形式。xml更强大,功能更丰富 ,properties更简单易懂。...

    北方攻城师
    2015/04/12
    212
    0
    Apache Log4j 2.12.0 发布,流行的 Java 日志组件

    Apache Log4j 2.12.0 已发布,Apache Log4j 是一个用于记录应用程序行为的框架。 Log4j 2是对 Log4j 的升级,可提供重大改进,超越其前身 Log4j 1.x,并提供许多其他现代功能 ,例如对标记的...

    xplanet
    07/02
    2.7K
    3
    tomcat8用log4j配置日志 解决日志过大问题

    不想给linux安装插件切割,只想tomcat解决 官方文档参考:https://tomcat.apache.org/tomcat-8.0-doc/logging.html 上面链接有说明怎么用 下方为使用方法找到你的tomcat对应版本 下载地址为:ht...

    stevenliu
    07/25
    21
    0
    Log4j 日志配置示例详解

    日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录,具体请参考Log4j文档指南。 Log4j下载 在apache网站,可以免费下载到Log4j最新版本的...

    长平狐
    2013/01/06
    173
    0

    没有更多内容

    加载失败,请刷新页面

    加载更多

    JAVA 编写redisUtils工具类,防止高并发获取缓存出现并发问题

    import lombok.extern.slf4j.Slf4j;import org.springframework.data.redis.core.BoundHashOperations;import org.springframework.data.redis.core.BoundValueOperations;import org.......

    huangkejie
    37分钟前
    5
    0
    JMM内存模型(一)&volatile关键字的可见性

    在说这个之前,我想先说一下计算机的内存模型: CPU在执行的时候,肯定要有数据,而数据在内存中放着呢,这里的内存就是计算机的物理内存,刚开始还好,但是随着技术的发展,CPU处理的速度越...

    走向人生巅峰的大路
    54分钟前
    95
    0
    你对AJAX认知有多少(2)?

    接着昨日内容,我们几天继续探讨ajax的相关知识点 提到ajax下面几个问题又是必须要了解的啦~~~ 8、在浏览器端如何得到服务器端响应的XML数据。 通过XMLHttpRequest对象的responseXMl属性 9、 ...

    理性思考
    今天
    5
    0
    正则表达式基础(一)

    1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以使用这些字符本身,而不是使用其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转...

    清自以敬
    今天
    4
    0
    idea中@Data标签getset不起作用

    背景:换电脑以后在idea中有@data注解都不生效 解决办法:idea装个插件 https://blog.csdn.net/seapeak007/article/details/72911529...

    栾小糖
    今天
    5
    0

    没有更多内容

    加载失败,请刷新页面

    加载更多

    返回顶部
    顶部