文档章节

log4j 使用简记

luckwsm
 luckwsm
发布于 2016/12/07 11:28
字数 715
阅读 4
收藏 0

在项目开发中,作为一个最底层的码农一直在已经搭建好的框架中填充代码,对log4j的认识只是使用log.info()、 log.warn()、log.error()而已,最近项目间期有点空闲时间对log4j简单学习,相关知识点简记如下:

Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值),其中后者是比较常用的方式。 Log4j由三个重要的组件构成: Loggers:日志信息的优先级,Appenders:日志信息的输出目的地,Layouts:日志信息的输出格式 。

1. Loggers的配置

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

level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL

appenderName就是指日志信息输出到哪个地方,可以同时指定多个输出目的地,在这里只是配置一个名称,具体属性要在Appenders中设置。

2. Appender的配置

Appender有以下几种:

  • org.apache.log4j.ConsoleAppender               控制台
  •   org.apache.log4j.FileAppender                    文件
  •   org.apache.log4j.DailyRollingFileAppender  每天回滚的文件
  •   org.apache.log4j.RollingFileAppender         指定大小的文件,超出时产生一个新的文件
  •   org.apache.log4j.WriterAppender               将日志信息以流格式发送到任意指定的地方

 其中控制台的属性有:

  • Threshold=DEBUG               指定日志消息的输出最低层次。
  • ImmediateFlush=true          默认值是true,意谓着所有的消息都会被立即输出。
  • Target=System.err               默认情况下是:System.out,指定输出控制台

文件的属性有:

  • Threshold=DEBUF             指定日志消息的输出最低层次。
  • ImmediateFlush=true        默认值是true,意谓着所有的消息都会被立即输出。
  • File=mylog.txt                   指定消息输出到mylog.txt文件。
  • Append=false                   默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。

RollingFileAppender 选项

  • Threshold=DEBUG           指定日志消息的输出最低层次。
  • ImmediateFlush=true      默认值是true,意谓着所有的消息都会被立即输出。
  • File=mylog.txt                 指定消息输出到mylog.txt文件。
  • Append=false                 默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
  • MaxFileSize=100KB         后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。
  • MaxBackupIndex=2        指定可以产生的滚动文件的最大数。

3. Layout的配置

  • org.apache.log4j.HTMLLayout              以HTML表格形式布局 ,
  • org.apache.log4j.PatternLayout           可以灵活地指定布局模式,
  • org.apache.log4j.SimpleLayout            包含日志信息的级别和信息字符串,
  • org.apache.log4j.TTCCLayout              包含日志产生的时间、线程、类别等等信息

4.非web项目中使用log4j, 动态加载修改

        String path = "/usr/gcclistener/config/log4j.properties";     //可使用相对地址
        // 间隔特定时间(单位毫秒),检测文件是否修改,自动重新读取配置
        PropertyConfigurator.configureAndWatch(path, 5000);

 

© 著作权归作者所有

共有 人打赏支持
上一篇: awk使用方法
luckwsm
粉丝 0
博文 18
码字总数 4951
作品 0
青岛
程序员
私信 提问
Apache 宣布 Log4j 1 版本生命周期终结

Apache 日志记录服务 PMC 宣布结束 Log4j™ 1.x 日志记录框架生命周期,不再提供官方支持。 八月初开始,Log4j 1 版本就已经寿终正寝了。 Log4j 在 1999 发布第一个版本,然后快速的成为最多...

oschina
2015/08/27
5K
15
【Log4j】Jboss下配置log4j简记

前几天碰到了一个常见的错误,在Jboss下配置了log4j.xml文件,但是配置没有生效。如果你在项目中没有指定使用的log4j的配置文件,最好使用文件名jboss-log4j.xml。该文件在Jboss容器的目录为...

半夏alvin
2014/04/02
0
0
Apache Log4j 2.11.1 发布,流行的 Java 日志组件

Log4j 2.11.1 已发布,可用于生产环境。Log4j 2.11.1 是 Log4j 的最新版本,包含在 Log4j 2.6 发布后发现的几个错误修复,可以在最新的变更报告中找到修复内容列表。 要注意的是,Log4j 2 的...

淡漠悠然
07/31
832
0
从Log4j迁移到LogBack的理由

Log4j大家都很熟悉了吧~! 无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进。不过尽管难以一一细数,这里还是列举部分理由为什么选择logback而不是log4j。牢记logback与log4j...

simplehpt
2014/11/26
4
1
Log4j 2.0 的新特性

不久之前,著名的日志框架log4j发布了一个新的主要版本。从第一个alpha版本诞生以来,log4j已经发布了4个版本。log4j 2较之前的log4j 1有了很大的改动。因此,虽然log4j 2s现在还很年轻,但它...

oschina
2012/12/07
20.7K
2

没有更多内容

加载失败,请刷新页面

加载更多

ArrayList的实现原理以及实现线程安全

一、ArrayList概述 ArrayList是基于数组实现的,是一个动态的数字,可以自动扩容。 ArrayList不是线程安全的,效率比较高,只能用于单线程的环境中,在多线程环境中可以使用Collections.syn...

一看就喷亏的小猿
20分钟前
0
0
Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
4
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
8
0
EOS错误代码及中文释义

本文集汇总了EOS区块链常见错误代码及其含义,完整错误代码集请查看 EOS错误代码集 - 汇智网 EOS错误代码列表如下, <table class="table table-striped"> <thead> <tr><th>错误代码</th><t......

汇智网教程
昨天
5
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部