两部分日志,hibernate3的信息和自定义AOP日志处理类的信息。都想打印到磁盘,但是目前只能打印到控制台。
附上自定义日志处理类。怎么改可以满足需求
package cn.gov.csrc.log;import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.aspectj.lang.ProceedingJoinPoint;
import org.springframework.stereotype.Component;@Component
public class GenericLoggerBean {
private static Logger logger = LogManager.getLogger(GenericLoggerBean.class);

public Object invoke(ProceedingJoinPoint joinPoint) throws Throwable{
//PropertyConfigurator.configure("csrc_cfw/WEB-INF/classes/log4j.properties");
logger.warn("Beginning method : " + joinPoint.getTarget().getClass() + "." + joinPoint.getSignature().getName()+ "()");
long startTime = System.currentTimeMillis();
try{
Object result = joinPoint.proceed();
return result;
}catch(Exception e){
logger.error(joinPoint.getTarget().getClass() + "." + joinPoint.getSignature().getName() + "() invoke error" );
logger.error("error info ["+e.getMessage()+"]");
e.printStackTrace();
}finally{
logger.info("Ending method : " + joinPoint.getTarget().getClass() + "." + joinPoint.getSignature().getName() + "()");
logger.info("Method invocation time : " + (System.currentTimeMillis() - startTime) + " ms.");
}
return null;
}
}

解决方案 »

  1.   

    参考:
    http://www.cnblogs.com/ITEagle/archive/2010/04/23/1718365.html
      

  2.   

    log4j配置文件里配置成如下的方式:
    log4j.rootCategory=WARN,stdout,filelog4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.EnhancedPatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS}|%p|MGW|%X{userId}%m%nlog4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.file=sample.log
    log4j.appender.file.maxFileSize=20MB
    log4j.appender.file.maxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.EnhancedPatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS}|%p|%m%n
    添加一个appender(红色部分),能写文件的append有好几个,常用的就是这个org.apache.log4j.RollingFileAppender,可以设置生成的日志文件大小上限
      

  3.   

    可以这样指定目录
    <property name="log.base" value="../logs/mer" /> 
    <!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份) -->
    <appender name="debugLog"  class="ch.qos.logback.core.rolling.RollingFileAppender">
    <Encoding>UTF-8</Encoding>
    <File>${log.base}/debug.log</File>
    </appender>
      

  4.   

    #Log4j提供的appender有以下几种:
    #org.apache.log4j.ConsoleAppender(控制台),
    #org.apache.log4j.FileAppender(文件),
    #org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
    #org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
    #org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender更改配置