Log4j示例

<!-- ========================== 自定义输出格式说明================================ -->
 <!-- %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)  -->
 <!-- ========================================================================== -->

配置文件可以是:.properties或者是.xml文件。具体怎么配置这里不做详细介绍,只是为了提供例子

第一种是.properties文件方法:

下面是初始化Log4j:

package  org.cjj.config.properties;

import  org.apache.log4j.PropertyConfigurator;

public   class  Log4jPropertiesConfig
{

    
/**
     * 
@param args
     
*/

    
private static Log4jPropertiesConfig    instance;

    
/**
     * 读取配置文件
     
*/

    
private Log4jPropertiesConfig()
    
{
        PropertyConfigurator.configure(Log4jPropertiesConfig.
class.getResource("log4j.properties"));
    }


    
/**
     * 
@return 单例模式
     
*/

    
public static synchronized Log4jPropertiesConfig initia()
    
{
        
if (instance == null)
        
{
            
return new Log4jPropertiesConfig();
        }

        
return instance;
    }

}

下面是配置文件:

##日志级别,以及日志类型名称
#如果为log4j.rootLogger=WARN, 则意味着只有WARN,ERROR,FATAL
#被输出,DEBUG,INFO将被屏蔽掉.
log4j.rootLogger=INFO, A1, A2

# A1 is set to be ConsoleAppender sending its output to System.out
#log4j中Appender有几层如控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等
#ConsoleAppender输出到控制台
log4j.appender.A1=org.apache.log4j.ConsoleAppender


# A1 使用的输出布局,其中log4j提供4种布局. org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apche.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.HTMLLayout(以HTML表格形式布局),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

# The conversion pattern consists of date in ISO8601 format, level,
# thread name, logger name truncated to its rightmost two components
# and left justified to 17 characters, location information consisting
# of file name (padded to 13 characters) and line number, nested
# diagnostic context, the and the application supplied message
## 输出格式
#灵活定义输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout
#d 时间 ....
log4j.appender.A1.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n

# Appender A2 writes to the file "testlog".
#A2 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。
log4j.appender.A2=org.apache.log4j.RollingFileAppender
#日志文件的大小
log4j.appender.A2.MaxFileSize=1MB
# 保存5个备份文件
log4j.appender.A2.MaxBackupIndex=5
log4j.appender.A2.layout=org.apache.log4j.TTCCLayout
##设置File参数:日志输出文件名
log4j.appender.A2.File=testlog.log

# Truncate 'test' if it aleady exists.
log4j.appender.A2.Append=false

# Appender A2 uses the PatternLayout.
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} %-5r %-5p [%t] %c{2} - %m%n

第二种是使用XML文件:

初始化Log4j:

package  org.cjj.config.xml;

import  org.apache.log4j.xml.DOMConfigurator;

public   class  Log4jXMLConfig
{

    
/**
     * 
@param args
     
*/

    
private static Log4jXMLConfig    instance;

    
private Log4jXMLConfig()
    
{
        DOMConfigurator.configure(Log4jXMLConfig.
class.getResource("log4j.xml"));
    }


    
public static synchronized Log4jXMLConfig initia()
    
{
        
if (instance == null)
        
{
            
return new Log4jXMLConfig();
        }

        
return instance;
    }

}

下面是配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

  <!-- 输出到日志文件 -->
 <appender name="filelog"
  class="org.apache.log4j.RollingFileAppender">
  <!-- 设置File参数:日志输出文件名 -->
  <!-- D:/LOG/com.log -->
  <param name="File" value="out.log" />
  <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
  <param name="Append" value="true" />
  <!-- 设置文件大小 -->
  <param name="MaxFileSize" value="100KB" />
  <!-- 设置文件大小 -->
  <param name="MaxBackupIndex" value="10" />
  <!-- 设置输出文件项目和格式 -->
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
  </layout>
 </appender>

 <!-- 输出到控制台中 -->
 <appender name="console" class="org.apache.log4j.ConsoleAppender">
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern"
    value="%-5p: %m%n" />
   <!-- "%-5p: [%t] [%c{3}.%M(%L)] | %m%n" -->
  </layout>
 </appender>

 <!-- 设置类名限制输出的通道 -->
 <category name="com.test1" additivity="false">
  <level value="ERROR" />
  <appender-ref ref="console" />
  <appender-ref ref="filelog" />
 </category>

 <!-- 设置类名限制输出的通道 -->
 <category name="org.springframework" additivity="false">
  <level value="OFF" />
  <appender-ref ref="console" />
  <appender-ref ref="filelog" />
 </category>

    <!-- 设置类名限制输出的通道 -->
 <category name="org.cjj" additivity="false">
  <level value="INFO" />
  <appender-ref ref="console" />
  <appender-ref ref="filelog" />
 </category>

 <!-- 设置接收所有输出的通道 -->
 <root>
  <level value="INFO" />
  <appender-ref ref="console" />
  <appender-ref ref="filelog" />
 </root>

</log4j:configuration>

这个测试工程可以在下面下载:下载(还有个方案读取XML文件时不需要模式(schema)验证,也在这个测试工程里面)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值