文档章节

log4j 使用简记

luckwsm
 luckwsm
发布于 2016/12/07 11:28
字数 715
阅读 2
收藏 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);

 

© 著作权归作者所有

共有 人打赏支持
luckwsm
粉丝 0
博文 17
码字总数 4595
作品 0
青岛
程序员
Apache Log4j 2.11.1 发布,流行的 Java 日志组件

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

淡漠悠然
07/31
0
0
【Log4j】Jboss下配置log4j简记

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

半夏alvin
2014/04/02
0
0
jboss log4j冲突分析与解决

Log4j作为日志组件被大多数的系统所使用,Jboss也不例外的采用了Log4j作为它的日志输出组件。 但在使用JBoss时,很多人经常碰到一些冲突,这些冲如自己配置的log4j文件无效,系统抛org.jboss...

职通网
2012/07/16
0
0
Apache LOG4J 2.11.0 发布,Java 日志组件

Apache Log4j 是一个众所周知的用于记录应用程序行为的框架。 Log4j 2是对Log4j的升级,可提供重大改进,超越其前身Log4j 1.x,并提供许多其他现代功能 ,例如对标记的支持,使用查找的属性替...

周其
03/18
0
3
java instrment手工加载log4j配置文件

使用java instrument做一个代码监控的工具,监控日志想用log4j记录,遇到了点问题。 启动应用的命令行加入-javaagent参数,可以在加载类时对其字节码做修改,常用工具有asm、javasssit。 我希...

yingtju
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

play framework 如何支持多数据源

有段时间没有写博客了,但今天又写一篇了,主要是因为这事有一丝自己的思考和动手实践,所以就记录下来了。 现有的问题: play 1.2.4 两台数据库服务器,但是play1.2.4 并不支持同时连接两台...

tuerqidi
28分钟前
2
0
Mysql only_full_group_by解析

查看当前数据库模式: select @@sql_mode; 原因: mysql 5.7中的sql_mode的值中包含'ONLY_FULL_GROUP_BY'; 处理:执行以下SQL set GLOBAL sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,N......

年轻的中年大叔
29分钟前
1
0
防止表单重复提交

1:前端方式(治标不治本) $("#admin-role-save").click(function(){//admin-role-save为submit的idvar ts=$(this);var ts_old_val=ts.val();ts.val("提交中....");ts.att...

uug
29分钟前
1
0
保持屏幕常亮

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 在act的created方法中调用即可,一般是播放视频的时候......

Carbenson
29分钟前
1
0
智能合约实施指南

与区块链技术一样,智能合约在商业领域也非常有价值。 为了让我们的读者彻底了解智能合约是什么以及它们如何影响现代商业的交易方式,我们准备了本指南。 集中商业模式正在给去中心化的模式让...

geek12345
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部