Log4j配置实践

在使用log4j打印应用日志的时候,有同事问我,同一个logger的日志的不同level可以输出到不同的文件么?这个。。。我告诉他当然可以,在我们使用Log4j的生产环境中一直都是把所有logger的error 以上level日志统一输入到错误日志文件,方便系统监控。

其实这个很容易实现,我们的做法就是在logger里面加入2个appender,appender设置不同的min和max level,具体如下:

<logger name="com...." additivity="false">
   <appender-ref ref="normal"/>
   <appender-ref ref="error"/>
</logger>
<pre class="prettyprint prettyprinted" style="margin-top: 0px; margin-bottom: 10px; padding: 5px; border: 1px solid rgb(214, 214, 214); width: 549.765625px; border-radius: 0px; font-size: 12px; overflow: auto; background-color: rgb(238, 238, 238);"><appender name="normal" class="org.apache.log4j.FileAppender">
   <param name="file" value="${log}/normal.log"/>
   <param name="append" value="true"/>
   <layout class="org.apache.log4j.PatternLayout">
      <param name="conversionPattern" value="%m%n"/>
   </layout>
   <filter>
       <param name="levelMax" value="warn" />
   </filter>
</appender>

<appender name="error" class="org.apache.log4j.FileAppender">
   <param name="file" value="${log}/error.log"/>
   <param name="append" value="true"/>
   <layout class="org.apache.log4j.PatternLayout">
      <param name="conversionPattern" value="%m%n"/>
   </layout>
   <filter>
       <param name="levelMin" value="error" />
   </filter>
</appender>

Note:在使用Log4j的Web应用测试环境中,我们经常会结合Spring的Log4jConfigListener来实现log的动态更新。下面的例子说明每6秒读取一次web-fin/log4j.xml的变动

<context-param>
      <param-name>log4jConfigLocation</param-name>
      <param-value>WEB-INF/log4j.xml</param-value>
  </context-param>   

  <context-param>
      <param-name>log4jRefreshInterval</param-name>
      <param-value>6000</param-value>
  </context-param>   

  <listener>
      <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>  
时间: 2024-10-17 19:27:40

Log4j配置实践的相关文章

log4j配置后行号乱码显示为?问号

debug="true"  classpathref="accrual.path" > 首发于 http://blog.xfuse.cn 参考文档 http://ant.apache.org/manual/CoreTasks/javac.html Log4j配置 log4j.appender.C1.layout.ConversionPattern=%F(%L)-- %-4r %-5p [%t] %37c %3x - %m%n 如果是用JAVAC编绎,那么直接加

路由器配置实践 教你如何在Linux中三台主机两个网段互相通信

大家好我是你们的齐天大圣 又到了齐天大圣给大家讲解的时间了 今天我带你们做一个 大大项目 你们信不信 如果把你不小心打开这个文档 希望你能看完 这个博文花费了我两天的时间所以请尊重我的劳动 假装看完好吗 齐天大圣在此谢过各位看官 首先欢迎大家观看操作步骤 我们正式开始 题目: 路由配置实践: 01. 需要按照拓扑结构配置好服务器的网络信息 02. 需要让linux服务器01可以访问linux服务器03,通过linux服务器02进行访问 将linux服务器02变换成为一台路由器 03. 实现lin

log4 log4j配置

  log4j配置 Log4j支持两种配置文件格式,一种是XML格式的文件,一种是properties格式的文件. 1.log4j.properties配置方法: 步骤: 0.下载log4j的jar包: 1.新建java项目: 2.新建包: 3.新建类: 4.在src下新建log4J.properites文本文件[日志配置文件] 5.新建lib文件夹:[存放第三方jar包] 6.新建bin文件夹:[存放生成的.class文件] 如下图: package com.loveryw; import o

项目重构之数据源配置与优化:log4j 配置数据库连接池Druid,并实现日志存储到数据库

作者:泥沙砖瓦浆木匠 个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 如果我的帮到了你,是否乐意捐助一下或请一杯啤酒也好呢?有你支持,干的更好~ 点这参与众筹 我的支付宝:13958686678 一. 前言 泥瓦匠又和大家见面了,最近两天我在Code Review ,顺便代码小小的Refactoring(重构)下.先了解这个项目吧,这次解决的是数据源配置优化.因为这web项目中配置数据源的地方很多.例如JDBC要配置数据源,Mybatis要配置数据源,Quartz定时任务要配

原创:路由配置实践 两个局域网主机的互连 VM linux

又开始齐天大圣讲课的时间了 我相信网络是每个运维人员和开发人员必不可少要接触的   今天我们要讲的是在VM虚拟机中 我们三台虚拟机划分两个局域网 实现不同局域网的互联 也就是下面图中的AC通过B主机的互相通信 而不通过网络 下面是要求和题目 路由配置实践: 01. 需要按照拓扑结构配置好服务器的网络信息 02. 需要让linux服务器01可以访问linux服务器03,通过linux服务器02进行访问 将linux服务器02变换成为一台路由器 03. 实现linux01和linux03可以互相访问

[转载] iptables配置实践

原文: http://wsgzao.github.io/post/iptables/ iptables配置实践 By wsgzao 发表于 2015-07-24 文章目录 1. 前言 2. 更新历史 3. 基础知识 3.1. 关闭iptables 3.2. 基础语法 4. 配置iptables白名单机制 5. 设置crontab脚本 前言 在大企业中防火墙角色主要交给硬件来支持,效果自然没话说只是需要增加一点点成本,但对于大多数个人或者互联网公司来说选择系统自带的iptables或者第三方云防火

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二)

Nginx虚拟主机配置实践之nginx访问同一个地址方法(二) 一.虚拟主机别名介绍 虚拟主机别名就是为虚拟主机设置除了主域名以外的另一个或多个域名名字,这样就能实现用户访问的多个域名对应于同一个虚拟主机网站的功能.在生产环境中,以www.afeilinux.com域名的虚拟主机为例,为其增加一个别名afeilinux.com时,在该域名出现的网站内容和访问www.afeilinux.com得到的结果是一样的. 二.实施方法 第一种方法:Nginx虚拟主机的别名配置 更改wtf.conf配置文件

log4j配置中遇到的问题

log4j配置后启动的时候报java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.LogManager的原因是,在不缺少jar的包的情况下,错误就发生在log4j.properties中,我的错误就是因为log4j.appender.FILE.DatePattern=yyyy-MM-dd -HH.log,日志根据日期格式生成,如果后面需要加别的内容,必须将其后的内容放在引号中,所以应该改成log4j

springmvc log4j配置

添加依赖 1 <properties> 2 <spring.version>4.1.0.RELEASE</spring.version> 3 <slf4j.version>1.7.13</slf4j.version> 4 </properties> 5 <!-- log4j --> 6 <dependency> 7 <groupId>org.springframework</groupId&g