一.Log4j的基本概念
1.Logger: 日志记录器.
日志的级别 级别越低 日志记录将更详细
级别有(由高到底)off,fatal,error,warn,info,debug,all 级别高的可覆盖级别低的日志输出
2.Appender: 输出端 指定日志输出到那个地方.一个Logger可以有多个Appender输出端,每个Appender输出端也可以被多个Logger使用.
常用的输出端有:
ConsoleAppender 将日志输出到控制台
org.apache.log4j.rolling.RollingFileAppender 可指定文件和日期的输出端
WriterAppender 将日志以流格式发送到任何指定的地方
JDBCAppender 通过JDBC把日志输出到数据库中
3.Layout: 日志格式化
log4j有三种Layout:
HTMLLayout 格式化日志输出为HTML表格;
PatternLayout 根据指定的格式(ConversionPattern)格式化日志输出(常用)
SimpleLayout 以非常简单的方式输出
二.配置
1. log4j的配置文件 log4j.xml
2. 把该配置文件放在工程的类路径下
3.private Logger logger = Logger.getLogger(ClassName.class);取得loger类
1.Logger: 日志记录器.
日志的级别 级别越低 日志记录将更详细
级别有(由高到底)off,fatal,error,warn,info,debug,all 级别高的可覆盖级别低的日志输出
2.Appender: 输出端 指定日志输出到那个地方.一个Logger可以有多个Appender输出端,每个Appender输出端也可以被多个Logger使用.
常用的输出端有:
ConsoleAppender 将日志输出到控制台
org.apache.log4j.rolling.RollingFileAppender 可指定文件和日期的输出端
WriterAppender 将日志以流格式发送到任何指定的地方
JDBCAppender 通过JDBC把日志输出到数据库中
3.Layout: 日志格式化
log4j有三种Layout:
HTMLLayout 格式化日志输出为HTML表格;
PatternLayout 根据指定的格式(ConversionPattern)格式化日志输出(常用)
SimpleLayout 以非常简单的方式输出
二.配置
1. log4j的配置文件 log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration >
<configuration xmlns='http://logging.apache.org/' debug="true">
<!-- 把日志输出到控制台中 -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) %m%n" />
</layout>
</appender>
<!-- 把日志按日期输出到日期日志文件中 -->
<appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="${catalina.home}/log4jlogs/mywebsite.%d{yyyy-MM-dd}.log.zip" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{MM-dd HH:mm:ss} %p [%t] %C{2} (%F:%L) - %m%n" />
</layout>
</appender>
<!-- 终端日志文件 -->
<appender name="terminal-logger" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${catalina.home}/logs/kiosks/TerminalService.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{MM-dd HH:mm:ss} [%p] [%t] (%F:%L): %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="levelMin" value="INFO" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<logger name="com.macaufly.kiosks">
<level value="INFO" />
<appender-ref ref="terminal-logger" />
</logger>
<!-- 设置接收所有输出的通道(但在logger中定义的级别在这里不起作用) -->
<root>
<level value="debug" /><!-- 设置级别 -->
<appender-ref ref="console" />
</root>
<!--
设置域名限制,即 com.dchaoxiong.studentmanage.servlets
包及以下的日志均输出到下面指定的通道(appender-ref)中
-->
<logger name="com.dchaoxiong.studentmanage.servlets">
<level value="debug" /> <!-- 设置级别 -->
<appender-ref ref="ROLL" /><!-- 与前面的通道id相对应 -->
</logger>
</configuration>
2. 把该配置文件放在工程的类路径下
3.private Logger logger = Logger.getLogger(ClassName.class);取得loger类