log4j+commons-loggingの使い方
log4j.propertiesファイルの作成
- tomcatの場合はclassesの直下に配置。
- eclipseを使って開発をしている場合はsrcの直下に置く。
- ちなみに以下の例ではAppenderにstdoutとSMTPを指定している。
- 複数のメールアドレスを指定する場合はカンマ区切りにする。
- com.example.hogehogeパッケージについてはログレベルをDEBUGにしている
log4j.rootCategory=INFO, stdout, mail
#console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p %d{HH:mm:ss}(%c{1}:%M) %m %n
log4j.appender.mail=org.apache.log4j.net.SMTPAppender
log4j.appender.mail.Threshold=FATAL
log4j.appender.mail.To=manager@example.com,hogehoge@example.com,foo@example.com
log4j.appender.mail.From=hogehoge@example.com
log4j.appender.mail.Subject=BODY
log4j.appender.mail.SMTPHost=192.168.100.100
log4j.appender.mail.layout=org.apache.log4j.PatternLayout
#logレベルを変更
log4j.category.com.example.hogehoge=DEBUG
commons-logging.propertiesの作成
javaファイルに埋め込む
- log4jはスレッドセーフなのでstaticで使用しても大丈夫。
- debug()/info()/warn()/fatal()メソッドが存在する
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class Hogehoge extends Action {
private static Log log = LogFactory.getLog(this.getClass().getName());
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse responce){
log.info("IN");
.....
.....
log.info("OUT");
return mapping.findForward("success");
}
}