log4j日志文件模板配置整理

  • 模板一
  • 模板二
  • 模板三
  • log4j配置参数介绍
  • 备注

模板一

以xml文件配置,按照不同的日志级别输出到不同的文件中

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'><appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%p][%d{yyyy-MM-dd HH:mm:ss SSS}][%c]-[%m]%n" /></layout></appender><appender name="DEBUG" class="org.apache.log4j.RollingFileAppender"><param name="File" value="/data/eclog/ec-debug.log" /><param name="Append" value="true" /><param name="MaxFileSize" value="500KB" /><param name="MaxBackupIndex" value="2" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%p][%d{HH:mm:ss SSS}][%c]-[%m]%n" /></layout><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="LevelMin" value="DEBUG" /><param name="LevelMax" value="DEBUG" /></filter></appender><appender name="INFO" class="org.apache.log4j.RollingFileAppender"><param name="File" value="/data/eclog/ec-info.log" /><param name="Append" value="true" /><param name="MaxFileSize" value="500KB" /><param name="MaxBackupIndex" value="10" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%p][%d{HH:mm:ss SSS}][%c]-[%m]%n" /></layout><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="LevelMin" value="INFO" /><param name="LevelMax" value="INFO" /></filter></appender><appender name="WARN" class="org.apache.log4j.RollingFileAppender"><param name="File" value="/data/eclog/ec-warn.log" /><param name="Append" value="true" /><param name="MaxFileSize" value="500KB" /><param name="MaxBackupIndex" value="10" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%p][%d{HH:mm:ss SSS}][%c]-[%m]%n" /></layout><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="LevelMin" value="WARN" /><param name="LevelMax" value="WARN" /></filter></appender><appender name="ERROR" class="org.apache.log4j.RollingFileAppender"><param name="File" value="/data/eclog/ec-error.log" /><param name="Append" value="true" /><param name="MaxFileSize" value="500KB" /><param name="MaxBackupIndex" value="10" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%p][%d{HH:mm:ss SSS}][%c]-[%m]%n" /></layout><filter class="org.apache.log4j.varia.LevelRangeFilter"><param name="LevelMin" value="ERROR" /><param name="LevelMax" value="ERROR" /></filter></appender><!-- 1. 指定logger的设置,additivity是否遵循缺省的继承机制 2. 当additivity="false"时,root中的配置就失灵了,不遵循缺省的继承机制 3. 代码中使用Logger.getLogger("logDiy")获得此输出器,且不会使用根输出器 --><logger name="logDiy" additivity="false"><level value="INFO" /><appender-ref ref="INFO" /></logger><root><priority value="debug" /><appender-ref ref="STDOUT" /><appender-ref ref="DEBUG" /><appender-ref ref="INFO" /><appender-ref ref="WARN" /><appender-ref ref="ERROR" /></root>
</log4j:configuration>

模板二

以xml文件配置,通用模板

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"><!-- 日志输出到控制台 --><appender name="console" class="org.apache.log4j.ConsoleAppender"><!-- 日志输出格式 --><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%p][%d{yyyy-MM-dd HH:mm:ss SSS}][%c]-[%m]%n" /></layout><!--过滤器设置输出的级别 --><filter class="org.apache.log4j.varia.LevelRangeFilter"><!-- 设置日志输出的最小级别 --><param name="levelMin" value="INFO" /><!-- 设置日志输出的最大级别 --><param name="levelMax" value="ERROR" /></filter></appender><!-- 输出日志到文件 --><appender name="fileAppender" class="org.apache.log4j.FileAppender"><!-- 输出文件全路径名 --><param name="File" value="/data/applogs/own/fileAppender.log" /><!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件 --><param name="Append" value="false" /><param name="Threshold" value="INFO" /><!--是否启用缓存,默认false --><param name="BufferedIO" value="false" /><!--缓存大小,依赖上一个参数(bufferedIO), 默认缓存大小8K --><param name="BufferSize" value="512" /><!-- 日志输出格式 --><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%p][%d{yyyy-MM-dd HH:mm:ss SSS}][%c]-[%m]%n" /></layout></appender><!-- 输出日志到文件,当文件大小达到一定阈值时,自动备份 --><!-- FileAppender子类 --><appender name="rollingAppender" class="org.apache.log4j.RollingFileAppender"><!-- 日志文件全路径名 --><param name="File" value="/data/applogs/RollingFileAppender.log" /><!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件 --><param name="Append" value="true" /><!-- 保存备份日志的最大个数,默认值是:1 --><param name="MaxBackupIndex" value="10" /><!-- 设置当日志文件达到此阈值的时候自动回滚,单位可以是KB,MB,GB,默认单位是KB,默认值是:10MB --><param name="MaxFileSize" value="10KB" /><!-- 设置日志输出的样式 -->`<layout class="org.apache.log4j.PatternLayout"><!-- 日志输出格式 --><param name="ConversionPattern"value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /></layout></appender><!-- 日志输出到文件,可以配置多久产生一个新的日志信息文件 --><appender name="dailyRollingAppender" class="org.apache.log4j.DailyRollingFileAppender"><!-- 文件文件全路径名 --><param name="File" value="/data/applogs/own/dailyRollingAppender.log" /><param name="Append" value="true" /><!-- 设置日志备份频率,默认:为每天一个日志文件 --><param name="DatePattern" value="'.'yyyy-MM-dd'.log'" /><!--每分钟一个备份 --><!--<param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm'.log'" /> --><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="[%p][%d{HH:mm:ss SSS}][%c]-[%m]%n" /></layout></appender><!-- 1. 指定logger的设置,additivity是否遵循缺省的继承机制 2. 当additivity="false"时,root中的配置就失灵了,不遵循缺省的继承机制 3. 代码中使用Logger.getLogger("logDiy")获得此输出器,且不会使用根输出器 --><logger name="logDiy" additivity="false"><level value="INFO" /><appender-ref ref="dailyRollingAppender" /></logger><!-- 根logger的设置,若代码中未找到指定的logger,则会根据继承机制,使用根logger --><root><appender-ref ref="console" /><appender-ref ref="fileAppender" /><appender-ref ref="rollingAppender" /><appender-ref ref="dailyRollingAppender" /></root>
</log4j:configuration>

模板三

以properties文件配置

#debug < info < warn < error
log4j.rootLogger=${logger.rootlogger}#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%-5d [%-4p] [%r] [%t] [%l] - %m%n# root info
log4j.appender.Infofile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Infofile.file=${catalina.home}/logs/ec.log
log4j.appender.Infofile.DatePattern='.'yyyy-MM-dd
log4j.appender.Infofile.layout=org.apache.log4j.PatternLayout
log4j.appender.Infofile.layout.ConversionPattern=%-5d [%-4p] [%r] [%t] [%l] - %m%n# error
log4j.appender.Errorfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Errorfile.file=${catalina.home}/logs/error.log
log4j.appender.Errorfile.DatePattern='.'yyyy-MM-dd
log4j.appender.Errorfile.Threshold = ERROR
log4j.appender.Errorfile.layout=org.apache.log4j.PatternLayout
log4j.appender.Errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n# 输出liveness日志
log4j.logger.liveness = INFO, liveness
# 是否在父log中输出日志
log4j.additivity.liveness = false
# 每天生产日志文件
log4j.appender.liveness = org.apache.log4j.DailyRollingFileAppender
# 生成日志到单独的文件
log4j.appender.liveness.File =${catalina.home}/logs/liveness.log
# 追加日志
log4j.appender.liveness.Append = true
# 日志级别
log4j.appender.liveness.Threshold = INFO
log4j.appender.liveness.layout = org.apache.log4j.PatternLayout
# 日志格式
log4j.appender.liveness.layout.ConversionPattern = [%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n

log4j配置参数介绍

  1. 控制台参数介绍
Threshold=DEBUG:指定日志消息的输出最低层次。
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
Target=System.err:默认情况下是:System.out,指定输出控制台
FileAppender 选项
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:指定可以产生的滚动文件的最大数。
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
  1. 日志信息格式中几个符号所代表的含义:
-X号: X信息输出时左对齐;%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921%r: 输出自应用启动到输出该log信息耗费的毫秒数%c: 输出日志信息所属的类目,通常就是所在类的全名%t: 输出产生该日志事件的线程名%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。%%: 输出一个"%"字符%F: 输出日志消息产生时所在的文件名称%L: 输出代码中的行号%m: 输出代码中指定的消息,产生的日志具体信息%n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行

备注

以上信息都为网上收集整理,只供学习使用,参考了部分作者文章
log4j.properties 详解与配置步骤

log4j日志文件模板配置整理相关推荐

  1. Tomcat下log4j日志文件 配置过程

    1) tomcat6.0下的log4j日志文件 配置过程 首先下载两个文件,如我的tomcat版本是v6.0.24 http://www.apache.org/dist/tomcat/tomcat-6 ...

  2. linux日志文件存放目录,Log4j 日志文件Linux/Mac/Windows通用存放位置设置方法

    log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置) 一.场景和需求 假设我现在有3个独立的用project(暂时用maven关联起 ...

  3. log4j日志文件乱码问题的解决方法

    log4j日志文件乱码问题的解决方法 log4j日志文件中文乱码处理方法 log4j 控制台和文件输出乱码问题解决 写在前面,第三篇文章中将原因解释的最清楚,为什么设置为UTF-8或者GBK就生效了, ...

  4. java 日志过期删除吗,log4j2 自动删除过期日志文件的配置及实现原理

    日志文件自动删除功能必不可少,当然你可以让运维去做这事,只是这不地道.而日志组件是一个必备组件,让其多做一件删除的工作,无可厚非.本文就来探讨下 log4j 的日志文件自动删除实现吧. 0.自动删除配 ...

  5. Nginx日志文件的配置

    Nginx日志文件的配置 Nginx的日志文件,默认在Nginx程序安装目录的logs二级目录下. 与Nginx日志相关的指令有两条 log_format,用来设置日志的记录格式. Access_lo ...

  6. Spring MVC中 log4j日志文件配置相对路径

    log4j和web.xml配置webAppRootKey 的问题 1 在web.xml配置 <context-param>   <param-name>webAppRootKe ...

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

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

  8. [转]tomcat6.0下的log4j日志文件配置过程

    首先下载两个文件, http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.28/bin/extras/tomcat-juli-adapters.jar ...

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

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

最新文章

  1. HGOI20190808 省常中互测1
  2. python:实现简单的web开发demo
  3. Migo估价记录不存在
  4. 交通与计算机杂志社,交通信息与安全
  5. Angular深入理解基本组成
  6. 研发管理三部曲——贰 · 研发管理应该干什么
  7. PHP数据处理:合并数据、详情数据
  8. PMP不报培训班的通过率高吗?
  9. Python网络编程之网络基础
  10. Zipf law 定律
  11. Spring前一次定时任务没执行完,下次任务是否会执行
  12. 网大网剧备案要避免的几大错误,内附最新备案流程!
  13. hydra(海德拉)暴力破解工具
  14. QT报错cannot find -lxxx(xxx为被调模型)和undefined reference to’_imp__ZN11/14xxx(xxx为自己定义)
  15. 主流自媒体平台优势与运营方法
  16. 你说五毛就五毛? 生产者消费者模式(Producer Consumer Pattern)来讲解
  17. tensorflow中的norm()函数 | axis=0,axis=1,axis=2
  18. stata回归表格输出
  19. wex5 生成动态轮播图代码
  20. elementplus中表格组件使用固定列时出现滚动条粘性布局固定表头

热门文章

  1. 四十五、壁面函数理论及y+的确定
  2. 天天生鲜项目从0开始
  3. 计算一个字符串中字母的个数
  4. 操作系统课程设计:Linux系统调用/基于模块的文件系统/Linux驱动/统计Linux系统缺页的次数 整合
  5. chrome frame节点 取_爬虫3-下(利用Selenium + Chrome Driver模拟用户操作浏览器)
  6. java fx:ria_虚拟小组讨论:RIA的当前和未来状态
  7. 【理科】2020年高考数学(第八章 立体几何)考点与题型全归纳
  8. 【TARS】TARS中的nodejs
  9. VTK可移动三维坐标轴 vtkMovableAxesWidget
  10. Few-NERD:小样本实体识别