log4j配置实例

Posted 开源java学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j配置实例相关的知识,希望对你有一定的参考价值。


log4j配置实例

Log4j是Apache的一个java开源项目,通过使用Log4j,可以使java程序控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是socket服务器等。也可以精确地控制每一条日志的输出格式,通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改java应用的代码。



Logger 完成日志信息的处理

 
定义输出的日志级别层次和决定信息是否输出
DEBUG<INFO<WARN<ERROR



通过Appender适配日志的常用的流向

(控制台)

  org.apache.log4j.ConsoleAppender

(文件)

  org.apache.log4j.FileAppender

(每天产生一个日志文件)

  org.apache.log4j.DailyRollingFileAppener

(文件大小到达指定尺寸的时候产生一个新的文件)

  org.apache.log4j.RollingFileAppender

(将日志讯息以串流格式发送到任意指定的地方)

  org.apache.log4j.WriterAppender

(将日志讯息保存到数据库中)

  org.apache.log4j.JdbcAppender




通过Layout设置日志输出格式

(以html表格形式布局)

    org.apache.log4j.HTMLLayout

(包含日志讯息的级别和讯息字符串)

    org.apache.log4j.SimpleLayout

(包含日志产生的时间、执行绪、类别等讯息)

    org.apache.log4j.TTCCLayout

(可以灵活地指定布局格式)

    org.apache.log4j.PatterLayout





配置实例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="filelog_appender"  

class="org.apache.log4j.RollingFileAppender">  

<!-- 设置File参数:日志输出文件名 -->  

<param name="File" 

           value="log/testlog4jxml_all.log" />  

<!-- 设置是否在重启服务时,在原有日志的基础添加 -->  

<param name="Append" value="true" />  

<!-- 设置文件大小 -->  

<param name="MaxFileSize" value="1MB" />  

<!-- 设置文件备份 -->  

<param name="MaxBackupIndex" value="10000" />  

<!-- 设置输出文件项目和格式 -->  

<layout class="org.apache.log4j.PatternLayout">  

    <param name="ConversionPattern"

     value="%d{yyyy-MM-dd HH:mm:ss} 

           %-5p (%c:%L)- %m%n" />  

</layout>  

</appender>  



<appender name="A2" 

class="org.apache.log4j.ConsoleAppender">

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" 

value="[%d{yyyy-MM-dd HH:mm:ss}][%C-%M]%m%n"/>

</layout>

</appender>


<logger name="com.jjm.dao">

<level value="DEBUG" />

<appender-ref ref="A1" />

</logger>


<root>

<priority value="DEBUG" />

<appender-ref ref="A2" />

</root>


</log4j:configuration>


 



配置实例2:向数据库、发邮件等接口方式

<?xml version="1.0" encoding="UTF-8" ?>  

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  


<log4j:configuration>  


<appender name="CONSOLE" 

     class="org.apache.log4j.ConsoleAppender">  

<layout class="org.apache.log4j.PatternLayout">  

<param name="ConversionPattern"  

value="%d - %c -%-4r [%t] %-5p %x - %m%n" />  

</layout>  


<!--限制输出级别-->  

<filter class="org.apache.log4j.varia.LevelRangeFilter">  

<param name="LevelMax" value="ERROR"/>  

<param name="LevelMin" value="TRACE"/>  

</filter>  

</appender>  


<appender name="FILE" 

         class="org.apache.log4j.FileAppender">  

<param name="File" value="C:/log4j1.log"/>  

<layout class="org.apache.log4j.PatternLayout">  

<param name="ConversionPattern"  

value="%d - %c -%-4r [%t] %-5p %x - %m%n" />  

</layout>  

</appender>   


<appender name="DATABASE" 

       class="org.apache.log4j.jdbc.JDBCAppender">  

<param name="URL" 

   value="jdbc:oracle:thin:@192.168.0.59:1521:oanet"/>  

<param name="driver" 

      value="oracle.jdbc.driver.OracleDriver"/>  

<param name="user" value="hdczoa"/>  

<param name="password" value="system"/>      

<layout class="org.apache.log4j.PatternLayout">  

<param name="ConversionPattern"  

value="INSERT INTO hdczoa.LOG4J(stamp,thread, info_level,class,message) VALUES 

       ('%d', '%t', '%p', '%c', %m)" />  

</layout>  

</appender>  


<!-- 发邮件(只有ERROR时才会发送!) -->  

<appender name="MAIL"  

class="org.apache.log4j.net.SMTPAppender">  

<param name="threshold" value="debug" />  

<!-- 日志的错误级别  

<param name="threshold" value="fatal"/>  

-->  

<param name="BufferSize" value="512" />

      <!-- 单位K -->  

<param name="From" value="test@163.com" />  

<param name="SMTPHost" value="smtp.163.com" />  

<param name="Subject" 

        value="juyee-log4jMessage" />  

<param name="To" value="test@163.com" />  

<param name="SMTPUsername" value="test" />  

<param name="SMTPPassword" value="test" />  

<layout class="org.apache.log4j.PatternLayout">  

<param name="ConversionPattern"  

value="%-d{yyyy-MM-dd 

                 HH:mm:ss.SSS} [%p]-[%c] %m%n" />  

</layout>  

</appender>  


<appender name="ASYNC" 

   class="org.apache.log4j.AsyncAppender">  

<param name="BufferSize" value="256" />  

<appender-ref ref="DATABASE" />  

</appender>  


<!--通过<logger></logger>

   的定义可以将各个包中的类日志输出到不同的日志文件中-->  

<logger name="com.litt2.log4j" additivity="false">     

    <level value="WARN" />     

    <appender-ref ref="CONSOLE" />     

</logger>  


<!--通过<category></category>

    的定义可以将各个包中的类日志输出到不同的日志文件中-->  

<category name="com.litt3">     

<level value="DEBUG" />   

   <appender-ref ref="CONSOLE" />  

   <appender-ref ref="MAIL" />  

</category>  


<root>  

<priority value="debug" />  

<appender-ref ref="CONSOLE" />  

<appender-ref ref="FILE" />  

</root>  


</log4j:configuration> 


此外:

<logger name="com.runway.bssp.activeXdemo"        additivity="false">  
       <priority value ="info"/>     
</logger>  


调试时,加类似上面这个logger节点,可以定义只打印具体类,及莫个包下的日志。使用时将配置好的log4j.xml 放到项目的classpath下即可,比如放在src下或是maven工程的resources/java下。


—— 关注更多学习资源! ——





开源

java                H5

     程序猿  编程  

   软件开发   源码     靖凯

      再来点干货   攻城狮

  无码下载       但求程序媛

        copy尼码    一看就懂




以上是关于log4j配置实例的主要内容,如果未能解决你的问题,请参考以下文章

log4j 详细配置实例

Log4j配置文件详解及实例

Java学习-007-Log4J 日志记录配置文件详解及实例源代码

log4j.properties配置详解与实例

log4j.properties配置详解与实例-全部测试通过

elasticsearch多实例怎么配置