`
musicbox95351
  • 浏览: 220508 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java 日志输出 Log4j配置

阅读更多
非原创。只是对网上的资料做了补充。

通过以下配置可以配置将某级别范围的日志信息写入到指定文件中。
可以配置输出日志的级别优先级。

分为三部分:
1 日志输出文件log4j.xml的配置。
2 加载日志配置文件的servlet类。
2 web.xml配置

当然,还要加载必要的jar包。

1
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="infoChannel"
  class="org.apache.log4j.RollingFileAppender">
  <!-- 设置通道file和输出方式:org.apache.log4j.RollingFileAppender -->
  <param name="File" value="${catalina.home}/logs/test.log" /><!-- 设置File参数:日志输出文件名 -->
  <param name="Append" value="true" /><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
  <param name="MaxBackupIndex" value="10" />
  <param name="MaxFileSize" value="10KB"/>
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n" /><!-- 设置输出文件项目和格式 -->
  </layout>
  <filter class="org.apache.log4j.varia.LevelRangeFilter">
      <param name="LevelMin" value="INFO" /><!--设置将INFO级别的日志通过该通道输出-->
	  <param name="LevelMax" value="INFO" />
  </filter>
</appender>
<appender name="debugChannel"
  class="org.apache.log4j.RollingFileAppender">
  <!-- 设置通道file和输出方式:org.apache.log4j.RollingFileAppender -->
  <param name="File" value="${catalina.home}/logs/testdebug.log" /><!-- 设置File参数:日志输出文件名 -->
  <param name="Append" value="true" /><!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
  <param name="MaxBackupIndex" value="10" />
  <param name="MaxFileSize" value="10KB"/>
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n" /><!-- 设置输出文件项目和格式 -->
  </layout>
  <filter class="org.apache.log4j.varia.LevelRangeFilter">
      <param name="LevelMin" value="DEBUG" />
	  <param name="LevelMax" value="DEBUG" />
  </filter>
</appender>
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
                <!-- 设置监视器输出方式 -->
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern"
    value="%-4r [%t] %-5p %c %x - %m%n" />
  </layout>
                <!--滤镜设置输出的级别-->
  <filter class="org.apache.log4j.varia.LevelRangeFilter">
   <param name="levelMin" value="info" />
   <param name="levelMax" value="info" />
   <param name="AcceptOnMatch" value="true" />
  </filter>
</appender>

<root>
  <!--设置输出的级别大于等于DEGUG priority value="DEBUG" / -->
  <!--设置输出的级别-->
  <priority value="INFO" />
  <!-- 设置接收所有输出的通道 -->
  <appender-ref ref="debugChannel" />
  <appender-ref ref="infoChannel" /><!-- 与前面的通道id相对应 -->
  <appender-ref ref="STDOUT" />
</root>

</log4j:configuration> 





package com.test.log;

import javax.servlet.ServletException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.xml.DOMConfigurator;
import javax.servlet.http.HttpServlet;;

/**
 * 
 * 加载log4j日志配置文件
 *
 */
public class ExtendedActionServlet extends HttpServlet {
        private Log log = LogFactory.getLog(this.getClass().getName());

        public ExtendedActionServlet() {}

        public void init() throws ServletException {
            log.info(
                    "Initializing, My MyActionServlet init this System's Const Variable");
            String prefix = this.getServletConfig().getServletContext().getRealPath(
                    "/");//读取项目的路径
            String file = this.getServletConfig().getInitParameter("log4j");
                       //读取log4j相对路径
            String filePath = prefix + file;
            DOMConfigurator.configure(filePath);//加载.xml文件      
            log.info("Initializing, end My Init");
            super.init();//此方法不能省,ActionServlet覆盖了的此方法中有很多重要操作
        }
} 



3  web.xml文件中增加servlet配置
<servlet> 
	    <servlet-name>log4j-init</servlet-name> 
	    <servlet-class> 
	      com.test.log.ExtendedActionServlet 
	    </servlet-class> 
	    <init-param> 
	      <param-name>log4j</param-name> 
	      <!-- 这里标出了位置 --> 
	      <param-value>/WEB-INF/log4j.xml</param-value> 
	    </init-param> 
	    <load-on-startup>1</load-on-startup> 
    </servlet>



分享到:
评论

相关推荐

    log4j2配置文件,按照文件大小划分日志,保存日期天数内的日志等

    log4j2配置文件,按照文件大小划分日志,保存日期天数内的日志,指纹日志命名规则,日志输出等级等功能

    log4j自定义日志文件名及日志输出格式

    根据项目需要,要求日志文件名及输出的日志内容头为特殊的格式,因此重写了log4j的一些方法,如要求的格式和项目不同,可根据示例参考进行再次的修改

    Log4j日志根据模块不同输出到不同的日志文件开发配置,便于监控项目各功能模块的运行情况

    文件中内容包括模块中某个类单独输出到一个日志文件中、模块中某个package单独输出到一个日志文件中、同一模块不同package输出到一个日志文件中三种情况下log4j.properties配置项配置事例、Java类中代码如何一致编写...

    log4j中配置日志文件相对路径方法(PDF)

    本文档提供log4j配置相对路径三种方法:log4j.properties文件配置、xml文件配置和通过servlet初始化方式来配置,希望对大家有所帮助

    springMVC 日志配置 限制log4j 输出文件大小

    实际项目中经常会用到日志打印 为避免日志打印输出文件过大 消耗服务器内存 需要限制大小

    java log4j配置大全

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    打印日志等异常处理,使用Log4j的配置

    #如果一条日志信息的级别大于等于配置文件的级别,就记录配置输出源所对应的辅助类:log4j.appender.输出源名称=类名,如果输出到文件就写FileAppender #指定文件名 Tomcat的根目录: #指定布局方式(消息放入文件...

    使用log4j2实现日志数据脱敏

    使用log4j2实现日志数据脱敏

    log4j2.xml记录日志到到数据库

    演示了java记录通过log4j2记录日志到mysql数据库中

    java后台日志log4j.properties文件

    使用方法,放在项目的SRC目录下即可使用(无需任何修改),log4j.properties需要配合log4j-xx.jar使用。 本人亲自验证可以使用!!

    Log4j日志管理系统简单使用说明

     禁用与使用日志请求只是Log4j其中的一个小小的地方,Log4j日志系统允许把日志输出到不同的地方,如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。...

    log4j 配置文档(记录日志)

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    log4j2在项目中的配置,对不同级别的日志进行不同文件的存储

    log4j2在项目中的配置,对不同级别的日志进行不同文件的存储

    log4j乱码问题解决办法

    在log4j.properties配置文件中可以指定字符编码: 下面这行配置指定了两个appender: log4j.rootCategory=INFO,appender1的名字,appender2的名字 下面这两行配置将上一行的两个appender的字符编码配置为GBK:

    java日志操作之Log4j

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出...

    log4j 配置日志文件,把日志信息输出到项目的某个文件夹下

    log4j 配置日志文件,把日志信息输出到项目的某个文件夹下,能把当前的日志输出到项目下制定的某文件夹,只要到web.xml配置log4j_save保存日志文件

    深入学习log4j

    Loggers组件的主要功能是提供相应API,根据不同配置的loggers将不同级别的log输入到控制台或文件,类似于java中经常用到的System.out.println,但是log4j封装后的loggers组件能够输出更丰富的信息,包括时间,线程,...

    log4j.properties

    commons-logging-1.2.jar,log4j-1.2.16.jar,三个文件一起组成一个完整的日志输出,Apache的Common Logging只是一个高层的日志框架,本身并没有实现真正的写日志能力,而是依赖其它的日志系统如Log4j或者java本身的...

    jjava日志文件log4j

     此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很...

    Log学习笔记——Log4j配置笔记.md

    Log4j log for java(java的日志) 是java主流的日志框架,提供各种类型,各种存储,各种格式,多样化的日志服务。Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、...

Global site tag (gtag.js) - Google Analytics