Lo4j 学习记录.. log4j.xml 方式

 
Lo4j 学习记录.. log4j.xml 方式
2011-05-25 16:58

最近正好需要这个东西,就整理下..关键老TM的忘,难道上年纪了..哎..套用好友的QQ签名 祖国未统一 心情很郁闷..蛋疼.

1. log4j.xml 内容 , 注释我想已经很清晰了..

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!-- ========================== 自定义输出格式说明================================ -->
<!-- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL -->
<!-- #%r 输出自应用启动到输出该log信息耗费的毫秒数 -->
<!-- #%c 输出所属的类目,通常就是所在类的全名 -->
<!-- #%t 输出产生该日志事件的线程名 -->
<!-- #%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n” -->
<!-- #%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日
 22:10:28,921 -->
<!-- #%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10) -->
<!-- ========================================================================== -->

<!-- ========================== 输出方式说明================================ -->
<!-- Log4j提供的appender有以下几种: -->
<!-- org.apache.log4j.ConsoleAppender(控制台), -->
<!-- org.apache.log4j.FileAppender(文件), -->
<!-- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), -->
<!-- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), -->
<!-- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) -->
<!-- ========================================================================== -->
<log4j:configuration>

 <!-- ==========================控制台输出 ========================== -->
 <appender name="Console" class="org.apache.log4j.ConsoleAppender">
     <!--输出字符集 -->
     <param name="Encoding" value="UTF-8" />
  <!--输出样式 -->
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss} %p]>>[ %l ]>> %-5m %n" />
  </layout>
  <!--限制输出级别 -->
  <filter class="org.apache.log4j.varia.LevelRangeFilter">
   <param name="LevelMax" value="error" />
   <param name="LevelMin" value="debug" />
  </filter>
 </appender>

 <!-- ========================== 输出日志到文件 <<追加方式>> ========================== -->
 <appender name="FileAppender" class="org.apache.log4j.RollingFileAppender">
  <!-- 设置File参数:日志输出文件名 -->
  <param name="File" value="${user.dir}/logs/Error.log" />
  <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
  <param name="Append" value="true" />
  <!-- 设置文件大小 -->
  <param name="MaxFileSize" value="10MB" />
  <!-- 设置文件备份 -->
  <param name="MaxBackupIndex" value="10" />
     <!--输出字符集 -->
     <param name="Encoding" value="UTF-8" />
  <!-- 设置输出文件项目和格式 -->
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss} %p]>>[ %l ]>> %-5m %n" />
  </layout>
  <!--限制输出级别 -->
  <filter class="org.apache.log4j.varia.LevelRangeFilter">
   <param name="LevelMax" value="error" />
   <param name="LevelMin" value="error" />
  </filter>
 </appender>

 <!-- ========================== 输出日志到文件<<每天一个日志>> ========================== -->
 <appender name="FileDaily" class="org.apache.log4j.DailyRollingFileAppender">
  <param name="File" value="${user.dir}/logs/Work.log" />
  <param name="DatePattern" value="'.'yyyy-MM-dd'.txt'" />
     <!--输出字符集 -->
     <param name="Encoding" value="UTF-8" />
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss} %p]>>[ %l ]>> %-5m %n" />
  </layout>
  <!--限制输出级别 -->
  <filter class="org.apache.log4j.varia.LevelRangeFilter">
   <param name="LevelMax" value="error" />
   <param name="LevelMin" value="debug" />
  </filter>
 </appender>

 <!-- ==================== 输出日志到数据库<<注意 JDBC驱动 及其数据库用户名密码>>=================== -->
 <appender name="Database" class="org.apache.log4j.jdbc.JDBCAppender">
  <param name="URL" value="jdbc:oracle:thin:@192.168.1.1:1521:orcl" />
  <param name="driver" value="oracle.jdbc.driver.OracleDriver" />
  <param name="user" value="wangjj" />
  <param name="password" value="dzjj" />
  <!--输出字符集 -->
     <param name="Encoding" value="UTF-8" />
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern"
    value="INSERT INTO LOG4J(LOG_NAME,
                             LOG_IP,
                             LOG_DATE,
                             LOG_LEVEL,
                             LOG_CLASS,
                             LOG_MESSAGE,
                             LOG_DESC)
                      VALUES ('${user.name}','192.168.1.1',TO_DATE('%d{yyyy-MM-dd HH:mm:ss}','yyyy-mm-dd HH24:MI:SS'),'%p','%c','%m','7') " />
  </layout>
 </appender>

 <!-- ==========================root标签必须放在配置底部 ========================== -->
 <root>
     <!-- 日志触发登记  必选项-->
  <level value="ERROR" />
  <!---控制台输出 可选项-->
  <appender-ref ref="Console" />
  <!---写文件追加方式 可选项-->
  <appender-ref ref="FileAppender" />
  <!---写文件每天生成方式 可选项-->
  <appender-ref ref="FileDaily" />
  <!---数据库记录方式 可选项-->
  <appender-ref ref="Database" />

 </root>
</log4j:configuration>

2. 如果你用到数据库日志记录 ,那么需要创建 LOG4J 表 ,我采用的是 oracle 数据库

-- Create table
createtableLOG4J
(
  log_name    VARCHAR2(60) notnull,
  log_ip      VARCHAR2(60) notnull,
  log_date    DATEnotnull,
  log_level   VARCHAR2(20) notnull,
  log_class   VARCHAR2(200) notnull,
  log_messageVARCHAR2(2000) notnull,
  log_desc    VARCHAR2(200)
)
tablespaceHGVS_MAIN
  pctfree10
  initrans1
  maxtrans255
  storage
  (
    initial64
    minextents1
    maxextentsunlimited
  );
-- Add comments to the table
commentontableLOG4J
  is'LOG4J 日志表,记录接口运行信息';
-- Add comments to the columns
commentoncolumnLOG4J.log_name
  is'日志提交者,';
commentoncolumnLOG4J.log_ip
  is'日志提交者IP,方便追踪提交者';
commentoncolumnLOG4J.log_date
  is'%d 日志产生时间';
commentoncolumnLOG4J.log_level
  is'%p 日志级别 DEBUG,INFO,ERROR等';
commentoncolumnLOG4J.log_class
  is'%c 日志所在类';
commentoncolumnLOG4J.log_message
  is'%m 日志信息';
commentoncolumnLOG4J.log_desc
  is'日志备注';

 

3. 使用方法 Demo 类 , 蛮简单的..自己看下吧


importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;

publicclassDemo{

    staticLoglog=LogFactory.getLog(Demo.class);

    publicstaticvoidmain(String[]args) {
        newDemo().test();
    }

    publicvoidtest() {
        log.debug("测试....");
        log.info("信息...");
        log.error("错误.....");
    }
}

附截图一张 , 相关文件放置一目了然


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值