最近正好需要这个东西,就整理下..关键老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("错误.....");
}
}
附截图一张 , 相关文件放置一目了然