把不同的log記錄到不同的地方的例子程式 .package Log4jEX;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class ExaWithLog4j ...{
private static final String LOG4J_PROPERTIES = "./src/log4j.properties";
static final Logger logger =
(Logger) Logger.getLogger(ExaWithLog4j.class.getName());
static Log Blog=LogFactory.getLog("Businesslog");
static Log Elog=LogFactory.getLog("Errlog");
//PropertyConfigurator.configure ( "ServerWithLog4j.properties" )
/** *//**
* @return Returns the lOG4J_PROPERTIES.
*/
public static String getLOG4J_PROPERTIES() ...{
return LOG4J_PROPERTIES;
}
public static void main(String[] args)...{
System.out.println(getLOG4J_PROPERTIES());
readCfg();
//logger.setLevel ( ( Level ) Level.DEBUG ) ;
for (int j = 0; j < 100; j++) ...{
System.out.println("第"+j+"次"+"log4j_debug");
Elog.debug("log4j_debug");
System.out.println("第"+j+"次"+"log4j_info");
Blog.info("log4j_info");
}
}
/** *//**
* PropertyConfigurator.configure
*/
private static void readCfg() ...{
PropertyConfigurator.configure (LOG4J_PROPERTIES);
}
}
其設定檔如下 .##CONFIGURATION FOR LOG4J##
#?????DEBUG
log4j.rootLogger=DEBUG
#log4j.rootCategory=DEBUG, A1,A2
#????
log4j.logger.Errlog=DEBUG,A1
#????
log4j.logger.Businesslog=INFO,A2
#??appender A1?????????error.log?
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.file=e:/Log4jEx.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d...{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
#??appender A2?????????business.log?
log4j.appender.A2=org.apache.log4j.ConsoleAppender
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d %p [%c] - %m%n
如果你也學習的話可以放到eclipse3.1下試 試,我已經成功的。
log4j.properties放在SRC目錄下。