<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/log4j-example-html/</link>
<title><![CDATA[log4j使用的例子和详解]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[编程杂谈]]></category>
<pubDate>Fri, 10 Sep 2010 04:45:56 +0000</pubDate> 
<guid>https://www.heckjj.com/log4j-example-html/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-family: 微软雅黑;">在项目中的classes 中新建立一个log4j.properties文件即可；<br/>在实际编程时，要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用。Log4j支持两种配置文件格式，一种是XML格式的文件，一种是java properties（key=value）【Java特性文件（键=值）】。（这里只说明properties文件） <br/><br/>1、配置根Logger <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其语法为： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log4j.rootLogger = [ level ] , appenderName1, appenderName2, … <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;level : 是日志记录的优先级，分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别，优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别，您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别，则应用程序中所有DEBUG级别的日志信息将不被打印出来。appenderName:就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如：log4j.rootLogger＝info,A1,B2,C3 </span><span style="font-family: 微软雅黑;"><br/><br/>2、配置日志信息输出目的地 <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其语法为： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log4j.appender.appenderName = fully.qualified.name.of.appender.class&nbsp;&nbsp;&nbsp;&nbsp;// <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"fully.qualified.name.of.appender.class" 可以指定下面五个目的地中的一个： <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.org.apache.log4j.ConsoleAppender（控制台） <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.org.apache.log4j.FileAppender（文件） <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.org.apache.log4j.DailyRollingFileAppender（每天产生一个日志文件） <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.org.apache.log4j.RollingFileAppender（文件大小到达指定尺寸的时候产生一个新的文件） <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.org.apache.log4j.WriterAppender（将日志信息以流格式发送到任意指定的地方） <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.ConsoleAppender选项 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Threshold=WARN:指定日志消息的输出最低层次。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Target=System.err：默认情况下是：System.out,指定输出控制台 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.FileAppender 选项 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Threshold=WARN:指定日志消息的输出最低层次。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File=mylog.txt:指定消息输出到mylog.txt文件。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append=false:默认值是true,即将消息增加到指定文件中，false指将消息覆盖指定的文件内容。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.DailyRollingFileAppender 选项 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Threshold=WARN:指定日志消息的输出最低层次。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File=mylog.txt:指定消息输出到mylog.txt文件。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append=false:默认值是true,即将消息增加到指定文件中，false指将消息覆盖指定的文件内容。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DatePattern=''.''yyyy-ww:每周滚动一次文件，即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1)''.''yyyy-MM: 每月 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2)''.''yyyy-ww: 每周&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3)''.''yyyy-MM-dd: 每天 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4)''.''yyyy-MM-dd-a: 每天两次 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5)''.''yyyy-MM-dd-HH: 每小时 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6)''.''yyyy-MM-dd-HH-mm: 每分钟 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.RollingFileAppender 选项 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Threshold=WARN:指定日志消息的输出最低层次。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File=mylog.txt:指定消息输出到mylog.txt文件。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append=false:默认值是true,即将消息增加到指定文件中，false指将消息覆盖指定的文件内容。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时，将会自动滚动，即将原来的内容移到mylog.log.1文件。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MaxBackupIndex=2:指定可以产生的滚动文件的最大数。 <br/><br/>3、配置日志信息的格式 <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其语法为： <br/>　　1). log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"fully.qualified.name.of.layout.class" 可以指定下面4个格式中的一个： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.org.apache.log4j.HTMLLayout（以HTML表格形式布局）， <br/>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.org.apache.log4j.PatternLayout（可以灵活地指定布局模式）， <br/>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.org.apache.log4j.SimpleLayout（包含日志信息的级别和信息字符串）， <br/>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.org.apache.log4j.TTCCLayout（包含日志产生的时间、线程、类别等等信息） <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.HTMLLayout 选项 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LocationInfo=true:默认值是false,输出java文件名称和行号 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Title=my app file: 默认值是 Log4J Log Messages. <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.PatternLayout 选项 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ConversionPattern=%m%n :指定怎样格式化指定的消息。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.XMLLayout&nbsp;&nbsp;&nbsp;&nbsp;选项 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LocationInfo=true:默认值是false,输出java文件和行号 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2). log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d&#123;yyyy-MM-dd HH:mm:ssS&#125; %c %m%n <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这里需要说明的就是日志信息格式中几个符号所代表的含义： <br/>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; －X号: X信息输出时左对齐； <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %p: 输出日志信息优先级，即DEBUG，INFO，WARN，ERROR，FATAL, <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %d: 输出日志时间点的日期或时间，默认格式为ISO8601，也可以在其后指定格式，比如：%d&#123;yyy MMM dd HH:mm:ss,SSS&#125;，输出类似：2002年10月18日 22：10：28，921 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %r: 输出自应用启动到输出该log信息耗费的毫秒数 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %c: 输出日志信息所属的类目，通常就是所在类的全名 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %t: 输出产生该日志事件的线程名 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %l: 输出日志事件的发生位置，相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程，以及在代码中的行数。举例：Testlog4.main(TestLog4.java:10) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %%: 输出一个"%"字符 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %F: 输出日志消息产生时所在的文件名称 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %L: 输出代码中的行号 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %m: 输出代码中指定的消息,产生的日志具体信息 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %n: 输出一个回车换行符，Windows平台为" <br/>"，Unix平台为"<br/>"输出日志信息换行 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如： <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1)%20c：指定输出category的名称，最小的宽度是20，如果category的名称小于20的话，默认的情况下右对齐。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2)%-20c:指定输出category的名称，最小的宽度是20，如果category的名称小于20的话，"-"号指定左对齐。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3)%.30c:指定输出category的名称，最大的宽度是30，如果category的名称大于30的话，就会将左边多出的字符截掉，但小于30的话也不会有空格。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4)%20.30c:如果category的名称小于20就补空格，并且右对齐，如果其名称长于30字符，就从左边交远销出的字符截掉 <br/><br/>比较详细的例子<br/><br/>log4j.rootLogger=INFO,consoleAppender,logfile,MAIL<br/>log4j.addivity.org.apache=true<br/><br/>#ConsoleAppender，控制台输出<br/>#FileAppender，文件日志输出<br/>#SMTPAppender，发邮件输出日志<br/>#SocketAppender，Socket日志<br/>#NTEventLogAppender，Window NT日志<br/>#SyslogAppender，<br/>#JMSAppender，<br/>#AsyncAppender，<br/>#NullAppender<br/><br/>#文件输出：RollingFileAppender<br/>#log4j.rootLogger = INFO,logfile<br/>log4j.appender.logfile = org.apache.log4j.RollingFileAppender<br/>log4j.appender.logfile.Threshold = INFO&nbsp;&nbsp; <br/># 输出以上的INFO信息 <br/>log4j.appender.logfile.File = INFO_log.html&nbsp;&nbsp;&nbsp;&nbsp; <br/>#保存log文件路径 <br/>log4j.appender.logfile.Append = true&nbsp;&nbsp;&nbsp;&nbsp;<br/># 默认为true，添加到末尾，false在每次启动时进行覆盖 <br/>log4j.appender.logfile.MaxFileSize = 1MB <br/># 一个log文件的大小，超过这个大小就又会生成1个日志 # KB ，MB，GB <br/>log4j.appender.logfile.MaxBackupIndex = 3&nbsp;&nbsp; <br/># 最多保存3个文件备份 <br/>log4j.appender.logfile.layout = org.apache.log4j.HTMLLayout <br/># 输出文件的格式 <br/>log4j.appender.logfile.layout.LocationInfo = true <br/>#是否显示类名和行数<br/>log4j.appender.logfile.layout.Title =title:&#92;u63d0&#92;u9192&#92;u60a8&#92;uff1a&#92;u7cfb&#92;u7edf&#92;u53d1&#92;u751f&#92;u4e86&#92;u4e25&#92;u91cd&#92;u9519&#92;u8bef <br/>#html页面的 < title > <br/>############################## SampleLayout ####################################<br/># log4j.appender.logfile.layout = org.apache.log4j.SampleLayout<br/>############################## PatternLayout ###################################<br/># log4j.appender.logfile.layout = org.apache.log4j.PatternLayout<br/># log4j.appender.logfile.layout.ConversionPattern =% d % p [ % c] -&nbsp;&nbsp; % m % n % d<br/>############################## XMLLayout #######################################<br/># log4j.appender.logfile.layout = org.apache.log4j.XMLLayout<br/># log4j.appender.logfile.layout.LocationInfo = true #是否显示类名和行数<br/>############################## TTCCLayout ######################################<br/># log4j.appender.logfile.layout = org.apache.log4j.TTCCLayout<br/># log4j.appender.logfile.layout.DateFormat = ISO8601<br/>#NULL, RELATIVE, ABSOLUTE, DATE or ISO8601.<br/># log4j.appender.logfile.layout.TimeZoneID = GMT - 8 : 00 <br/># log4j.appender.logfile.layout.CategoryPrefixing = false ##默认为true 打印类别名<br/># log4j.appender.logfile.layout.ContextPrinting = false ##默认为true 打印上下文信息<br/># log4j.appender.logfile.layout.ThreadPrinting = false ##默认为true 打印线程名<br/># 打印信息如下：<br/>#2007 - 09 - 13&nbsp;&nbsp; 14 : 45 : 39 , 765 [http - 8080 - 1 ] ERROR com.poxool.test.test - error成功关闭链接<br/>###############################################################################<br/>#每天文件的输出：DailyRollingFileAppender<br/>#log4j.rootLogger = INFO,errorlogfile<br/>log4j.appender.errorlogfile = org.apache.log4j.DailyRollingFileAppender<br/>log4j.appender.errorlogfile.Threshold = ERROR<br/>log4j.appender.errorlogfile.File = ../logs/ERROR_log<br/>log4j.appender.errorlogfile.Append = true <br/>#默认为true，添加到末尾，false在每次启动时进行覆盖<br/>log4j.appender.errorlogfile.ImmediateFlush = true&nbsp;&nbsp; <br/>#直接输出，不进行缓存<br/># ' . ' yyyy - MM: 每个月更新一个log日志<br/># ' . ' yyyy - ww: 每个星期更新一个log日志<br/># ' . ' yyyy - MM - dd: 每天更新一个log日志<br/># ' . ' yyyy - MM - dd - a: 每天的午夜和正午更新一个log日志<br/># ' . ' yyyy - MM - dd - HH: 每小时更新一个log日志<br/># ' . ' yyyy - MM - dd - HH - mm: 每分钟更新一个log日志<br/>log4j.appender.errorlogfile.DatePattern = ' . ' yyyy - MM - dd ' .log ' <br/>#文件名称的格式<br/>log4j.appender.errorlogfile.layout = org.apache.log4j.PatternLayout<br/>log4j.appender.errorlogfile.layout.ConversionPattern =%d %p [ %c] -&nbsp;&nbsp; %m %n %d<br/><br/>#控制台输出：<br/>#log4j.rootLogger = INFO,consoleAppender<br/>log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender<br/>log4j.appender.consoleAppender.Threshold = ERROR<br/>log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout<br/>log4j.appender.consoleAppender.layout.ConversionPattern =%d %-5p %m %n<br/>log4j.appender.consoleAppender.ImmediateFlush = true<br/><br/># 直接输出，不进行缓存 <br/>log4j.appender.consoleAppender.Target = System.err <br/># 默认是System.out方式输出 <br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">#发送邮件：SMTPAppender<br/>#log4j.rootLogger = INFO,MAIL<br/>log4j.appender.MAIL = org.apache.log4j.net.SMTPAppender<br/>log4j.appender.MAIL.Threshold = INFO<br/>log4j.appender.MAIL.BufferSize = 10<br/>log4j.appender.MAIL.From = yourmail@gmail.com<br/>log4j.appender.MAIL.SMTPHost = smtp.gmail.com<br/>log4j.appender.MAIL.Subject = Log4J Message<br/>log4j.appender.MAIL.To = yourmail@gmail.com<br/>log4j.appender.MAIL.layout = org.apache.log4j.PatternLayout<br/>log4j.appender.MAIL.layout.ConversionPattern =%d - %c -%-4r [%t] %-5p %c %x - %m %n</div></div><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">#数据库：JDBCAppender<br/>log4j.appender.DATABASE = org.apache.log4j.jdbc.JDBCAppender<br/>log4j.appender.DATABASE.URL = jdbc:oracle:thin:@ 210.51 . 173.94 : 1521 :YDB<br/>log4j.appender.DATABASE.driver = oracle.jdbc.driver.OracleDriver<br/>log4j.appender.DATABASE.user = ydbuser<br/>log4j.appender.DATABASE.password = ydbuser<br/>log4j.appender.DATABASE.sql = INSERT INTO A1 (TITLE3) VALUES ( ' %d - %c %-5p %c %x - %m%n ' )<br/>log4j.appender.DATABASE.layout = org.apache.log4j.PatternLayout<br/>log4j.appender.DATABASE.layout.ConversionPattern =% d -&nbsp;&nbsp; % c -%- 4r [ % t] %- 5p % c % x -&nbsp;&nbsp; % m % n<br/>#数据库的链接会有问题，可以重写org.apache.log4j.jdbc.JDBCAppender的getConnection() 使用数据库链接池去得链接，可以避免insert一条就链接一次数据库</div></div></span><br/>Tags - <a href="https://www.heckjj.com/tags/log4j/" rel="tag">log4j</a>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/log4j-example-html/#blogcomment</link>
<title><![CDATA[[评论] log4j使用的例子和详解]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/log4j-example-html/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>