Commons LoggingとLog4J

log4j.xmlのサンプルです。

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> 

  <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender" >
    <param name="threshold" value="warn"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{yyyy/MM/dd} %-5p [%t] (%F:%L) - %m%n"/>
    </layout>
  </appender>

  <appender name="FILE" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="C:/temp/webapplication.log" /> 
    <param name="Append" value="true" />
    <param name="MaxFileSize" value="1MB"/>
    <param name="MaxBackupIndex" value="5"/>
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{yyyy/MM/dd} %p:%r:%c:%m%n" /> 
    </layout>
  </appender>

  <category name="net.sf.hibernate">
    <priority value="info" /><appender-ref ref="FILE" />
  </category>

  <category name="shiten.struts">
    <priority value="info" /><appender-ref ref="FILE" />
  </category>

  <category name="org.apache.struts">
    <priority value="info" /><appender-ref ref="FILE" />
  </category>

  <root>
    <priority value="warn" /><appender-ref ref="STDOUT" />
  </root>

</log4j:configuration>

XMLを書くのが面倒なときは、log4j.propertiesファイルでごく簡単に書いてしまいましょう。

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1} - %m%n

### direct messages to file mylog.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=mylog.log
#log4j.appender.file.Append=true
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d %5p %c{1} - %m%n

log4j.rootLogger=debug, stdout
#my.test=info, file

「%c」は完全修飾のクラス名を出力しますが、パッケージ階層が長いとログが大変読みづらくなります。 そこでお勧めが「%c{1}」という書き方で、これだとクラス名だけが出力されます。
commons-logging.propertiesのサンプルです。

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog

#.level = INFO
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
#
#java.util.logging.FileHandler.pattern = C:/commonlogging.log
#java.util.logging.FileHandler.limit = 50000
#java.util.logging.FileHandler.count = 1
#java.util.logging.FileHandler.append = true
##java.util.logging.FileHandler.formatter = org.apache.commons.logging.impl.Jdk14Logger
#java.util.logging.FileHandler.formatter = org.apache.commons.logging.impl.Log4JLogger
#
#java.util.logging.ConsoleHandler.level = WARN
#java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

Java kowaza Top

(first uploaded 2004/09/04 last updated 2007/01/05, URANO398)

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!