1.
文件
log4j.properties
用生成跟
TOMCAT
控制台相同信息
# This is the configuring for logging displayed in the Application Server
log4j.rootCategory
=
INFO, stdout,logfile
#stdout configure
log4j.appender.stdout
=
org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout
=
org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
=
%d %p [%c] - <%m>%n
#logfile configure
log4j.appender.logfile
=
org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File
=
../logs/yintong/yintong.log
log4j.appender.logfile.layout
=
org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern
=
%d %p [%c] - <%m>%n
# Control logging for other open source packages
# Changing the log level to DEBUG when debug
log4j.logger.org.springframework
=
WARN
# Changing the log level to DEBUG will display SQL Hibernate generated
log4j.logger.org.hibernate
=
WARN
log4j.logger.org.hibernate.SQL
=
ERROR
log4j.logger.org.hibernate.cache
=
ERROR
log4j.logger.net.sf.ehcache
=
ERROR
log4j.logger.org.apache.commons.validator.ValidatorResources
=
ERROR
2.
按照LOG动作写进日志中
og4j.rootLogger
=
ERROR,rootLog
# SysOut is set to be a ConsoleAppender which outputs to System.out.
log4j.appender.SysOut
=
org.apache.log4j.ConsoleAppender
# SysOut uses PatternLayout.
log4j.appender.SysOut.layout
=
org.apache.log4j.PatternLayout
# The conversion pattern uses format specifiers. You might want to
# change the pattern an watch the output format change.
log4j.appender.SysOut.layout.ConversionPattern
=
%-d{yyyy-MM-dd HH:mm:ss} %-4r %-5p [%t] (%F:%L) %37c %3x - %m%n
#setting for appender rootLog
log4j.appender.rootLog
=
org.apache.log4j.RollingFileAppender
log4j.appender.rootLog.File
=
logs/rootLog.log
log4j.appender.rootLog.MaxFileSize
=
10000KB
log4j.appender.rootLog.MaxBackupIndex
=
2
log4j.appender.rootLog.layout
=
org.apache.log4j.PatternLayout
log4j.appender.rootLog.layout.ConversionPattern
=
%d{yyyy-MM-dd HH/:mm/:ss},%m%n
#-------------------------------------------------------------------------------
log4j.logger.view.debug
=
ERROR,debugFile
log4j.logger.view.info
=
INFO,infoLog
log4j.logger.view.error
=
ERROR,SysOut,errLog
#setting for appender debugFile
log4j.appender.debugFile
=
org.apache.log4j.RollingFileAppender
log4j.appender.debugFile.File
=
logs/debug.log
log4j.appender.debugFile.MaxFileSize
=
10000KB
log4j.appender.debugFile.MaxBackupIndex
=
2
log4j.appender.debugFile.layout
=
org.apache.log4j.PatternLayout
log4j.appender.debugFile.layout.ConversionPattern
=
%d{yyyy-MM-dd HH/:mm/:ss},%m%n
#setting for appender infoLog
log4j.appender.infoLog
=
org.apache.log4j.RollingFileAppender
##
可以指定存放目录
log4j.appender.infoLog.File
=
logs/srvInfo.log
log4j.appender.infoLog.MaxFileSize
=
50000KB
log4j.appender.infoLog.MaxBackupIndex
=
2
log4j.appender.infoLog.layout
=
org.apache.log4j.PatternLayout
log4j.appender.infoLog.layout.ConversionPattern
=
%d{yyyy-MM-dd HH/:mm/:ss},%m%n
#setting for appender errLog
log4j.appender.errLog
=
org.apache.log4j.RollingFileAppender
##
可以指定存放目录
log4j.appender.errLog.File
=
logs/srvErr.log
log4j.appender.errLog.MaxFileSize
=
50000KB
log4j.appender.errLog.MaxBackupIndex
=
2
log4j.appender.errLog.layout
=
org.apache.log4j.PatternLayout
log4j.appender.errLog.layout.ConversionPattern
=
%d{yyyy-MM-dd HH/:mm/:ss},%m%n
对用的工具的类是OSysLog.java
import java.io.PrintWriter;
import java.io.StringWriter;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class OSysLog {
// ------------------------------------------------------------------------------
/**
*
���
Լ
�
¼
��
*/
private static Logger debugLogger = Logger.getLogger("view.debug");
/**
*
һ
����
Ϣ
��
¼
��
*/
private static Logger infoLogger = Logger.getLogger("view.info");
/**
*
������
Ϣ
��
¼
��
*/
private static Logger errorLogger = Logger.getLogger("view.error");
static {
PropertyConfigurator.configure(new OSysLog().getClass()
.getClassLoader().getResource(
"config/log4j.properties"));
}
// ------------------------------------------------------------------------------
/**
*
��
¼
������
Ϣ
*
* @param msg
*
��
Ϣ
*/
public static final void debug(String msg) {
debugLogger.debug(msg);
}
// ------------------------------------------------------------------------------
/**
*
��
¼
һ
����
Ϣ
*
* @param msg
*/
public static final void info(String msg) {
infoLogger.info(msg);
}
// ------------------------------------------------------------------------------
/**
*
��
¼
������
Ϣ
*
* @param msg
*/
public static final void error(String msg) {
errorLogger.error(msg);
}
// ------------------------------------------------------------------------------
public static final void error(Exception exp) {
errorLogger.error(stackToString(exp));
}
// ------------------------------------------------------------------------------
/**
*
��
ӡ
��
exception
�
ij
��
StackTrace
*
* @param e
*
�
쳣
����
* @return e.printStackTrace
���
ַ
�����
*/
private static String stackToString(Exception e) {
try {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
return sw.toString();
} catch (Exception e2) {
return "(bad stack2string)".concat(e.getMessage());
}
}
// ------------------------------------------------------------------------------
public static void main(String[] args) {
debug("debug");
info("info");
error("error");
}
// ------------------------------------------------------------------------------
}