写了一个类生成日志文件
import org.apache.log4j.*;
import java.io.IOException;public class COProxyLog //系统运行日志。
{
private static Category m_Log = null;
public void InitOProxyLog(){
try{
m_Log = Category.getInstance( cLogFIleName );
RollingFileAppender appender = new RollingFileAppender( new PatternLayout("%d{yyyy-MM-dd HH:mm:ss} :: %5p :: %m%n") ,"online.log" , true );
appender.setMaxBackupIndex( 1000 );
appender.setMaxFileSize( 102400KB);
m_Log.addAppender( appender );
//%5p - %m%n
ConsoleAppender capp = new ConsoleAppender( new PatternLayout( "%5p - %m%n" ) );
m_Log.addAppender( capp );
m_Log.setLevel( cLevel );
} catch ( IOException e ){
}
}
}可以生成日志,可以只有一个日志文件(online.log),如何可以完成这样的功能:即按每天的日期生成当天的日志文件?
import org.apache.log4j.*;
import java.io.IOException;public class COProxyLog //系统运行日志。
{
private static Category m_Log = null;
public void InitOProxyLog(){
try{
m_Log = Category.getInstance( cLogFIleName );
RollingFileAppender appender = new RollingFileAppender( new PatternLayout("%d{yyyy-MM-dd HH:mm:ss} :: %5p :: %m%n") ,"online.log" , true );
appender.setMaxBackupIndex( 1000 );
appender.setMaxFileSize( 102400KB);
m_Log.addAppender( appender );
//%5p - %m%n
ConsoleAppender capp = new ConsoleAppender( new PatternLayout( "%5p - %m%n" ) );
m_Log.addAppender( capp );
m_Log.setLevel( cLevel );
} catch ( IOException e ){
}
}
}可以生成日志,可以只有一个日志文件(online.log),如何可以完成这样的功能:即按每天的日期生成当天的日志文件?
org.apache.log4j.DailyRollingFileAppender
如 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
如果加上了 org.apache.log4j.DailyRollingFileAppender 那就要把MaxFileSize的设置项去掉
MaxBackupIndex设置项是否也要去掉,记不清了,感觉不用去,毕竟需要有一个总数限制
log4j.rootLogger=DEBUG,R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=comm.log
log4j.appender.R.MaxBackupIndex=100
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.appender.A4=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A4.DatePattern='.'yyyy-MM-dd
log4j.appender.A4.File=debugLog/testHH8060.log
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
log4j.appender.A4.layout.ConversionPattern=%-4r %3x - %m%n
log4j.threshold=INFO
这样的配置log4j.properties文件就能生成你要的每日日志文件,如上例先在debugLog目录下生成testHH8060.log文件,然后再生成代有日期的日志文件.
public void InitOProxyLog(){
try{
m_Log = Category.getInstance( cLogFIleName );
RollingFileAppender appender = new RollingFileAppender( new PatternLayout("%d{yyyy-MM-dd HH:mm:ss} :: %5p :: %m%n") ,"online.log" , true );
appender.setMaxBackupIndex( 1000 );
appender.setMaxFileSize( 102400KB);
m_Log.addAppender( appender );
//%5p - %m%n
ConsoleAppender capp = new ConsoleAppender( new PatternLayout( "%5p - %m%n" ) );
m_Log.addAppender( capp );
///////////////我想在这里加入
log4j.appender.A4=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A4.DatePattern='.'yyyy-MM-dd
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
这些参数可以吗?加入后是否就可以每天生成相应的日志文件????? m_Log.setLevel( cLevel );
} catch ( IOException e ){
}
}
不是加在你的java程序里面
public class COProxyLog //系统运行日志。
{
public void InitOProxyLog(){
m_Log = Logger.getLogger(COProxyLog.class);
}
private static Category m_Log = null;
}
运行后出现错误
log4j:WARN No appenders could be found for logger (proxy.Log.COProxyLog).log4j:WARN Please initialize the log4j system properly.
为什么???
如果我把m_Log 定义为Logger类型的,可是在写日志的时候,
比如这句: try {
.........
} catch (IOException e) {
m_Log .info("COProxyServer::COProxyServer()--catch1:"+ this.getClass().getName() , e.getClass().getName() , e.getMessage());
/////这里会提示出错,只有将m_Log 定义Category 才行.
e.printStackTrace();
}
import java.io.IOException;public class COProxyLog // 系统运行日志。
{
private static Category m_Log = null; public void InitOProxyLog() {
try {
m_Log = Category.getInstance(cLogFIleName);
DailyRollingFileAppender appender = new DailyRollingFileAppender(
new PatternLayout("%d{yyyy-MM-dd HH:mm:ss} :: %5p :: %m%n"),
"online.log", ".yyyy-MM-dd"); //appender.setMaxBackupIndex(1000);
//appender.setMaxFileSize("102400KB"); m_Log.addAppender(appender);
// %5p - %m%n
ConsoleAppender capp = new ConsoleAppender(new PatternLayout("%5p - %m%n"));
m_Log.addAppender(capp);
m_Log.setLevel(cLevel);
} catch (IOException e) {
}
}
}
高手就是高手,一句话就解决了。万分感谢。