• java web中使用log4j


    测试log4j的项目结构

    Log4j.properties的路径为    src/config/log4j

    Log4j.properties文件的内容

    下面定义日志输出级别是 INFO,并且配置了2个输出目的地,一个是A3,一个是console  
      
    log4j.rootLogger = INFO,A3,CONSOLE  
      
    //日志最低的输出级别  
    log4j.appender.A3.Threshold=INFO  
    log4j.appender.A3.encoding=UTF-8  
    //每天产生一个文件DailyRollingFileAppender    
    log4j.appender.A3 = org.apache.log4j.DailyRollingFileAppender  
    //file 属性  指定产生日志文件的保存位置及文件名,这里是windows下的配置  
    // c:/logtest/logtest.log,  
    //公司项目在linux下的配置是/app/weblogic/applications/logs/sxvip_logs  
    log4j.appender.A3.File=c:/logtest/logtest.log  
    //当有日志时立即输出,默认是true  
    log4j.appender.A3.ImmediateFlush=true  
    log4j.appender.A3.DatePattern='_'yyyy-MM-dd  
    //日志布局方式  
    log4j.appender.A3.layout=org.apache.log4j.PatternLayout  
    //日志文件中日志的格式  
    log4j.appender.A3.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] - %m%n  
      
    //这里使用org.apache.log4j.ConsoleAppender指定要把日志输出到控制台  
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
    log4j.appender.Threshold=INFO  
    //输出目标是 控制台  
    log4j.appender.CONSOLE.Target=System.out  
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
    log4j.appender.CONSOLE.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} OSS %-5p [%c] - %m%n  

    在Web应用中web.xml利用Spring配置log4j

    在web.xml中添加配置  
    <!-- 配置log4j配置文件的路径,可以是xml或 properties(此参数必须配)-->   
    下面使用了classpath 参数指定log4j.properties文件的位置,这样log4j的配置文件就不用非要放到src的下面  
    <context-param>  
       <param-name>log4jConfigLocation</param-name>  
     <param-value>classpath:config/log4j/log4j.properties</param-value>  
    </context-param>   
    使用spring的监听器,当应用启动时来读取log4j的配置文件  
    <listener>  
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
    </listener>  

    在java中使用log4j

    import org.apache.commons.logging.Log;  
    import org.apache.commons.logging.LogFactory;   
    public class MyServiceParamAction extends BaseAdmAction{  
      
    private static final Log log =   
    LogFactory.getLog(MyServiceParamAction.class);  
      
      
    public ActionForward NgCallServiceInfo(ActionMapping mapping, ActionForm form,  
        HttpServletRequest request, HttpServletResponse response) {  
        // 获得登录用户信息,没有登录提示用户需要重新登录  
        log.info("我的服务查询开始.....................................");  
        UserBean user = (UserBean) request.getSession().getAttribute("USER_INFO");  
        log.info("从session中获取登录用户user                 "+user);  
        if (user != null) {  
            log.info("user.getMisisdn()            "+user.getMsisdn());   
    . . .   
    }  

    当应用启动时,这里就会根据log4j的配置(log4j.appender.A3.File=c:/logtest/logtestxxx.log)在c盘下产生日志文件

    当访问项目的资源时就会在该文件中添加日志信息

    2013/12/05 11:46:33 OSS INFO  [com.sinovatech.myservice.action.MyServiceParamAction] - 我的服务查询开始...........

    2013/12/05 11:46:33 OSS INFO  [com.sinovatech.myservice.action.MyServiceParamAction] - 从session中获取登录用户  user  null

    2013/12/05 11:46:33 OSS INFO  [com.sinovatech.myservice.action.MyServiceParamAction] - VIP 我的服务  查询  结束........

  • 相关阅读:
    【Python3 爬虫】U27_多线程爬虫之Queue线程安全队列
    【Python3 爬虫】U26_多线程爬虫之生产者与消费者模式
    【Python3 爬虫】U25_多线程爬虫之多线程共享全局变量及锁机制
    【Python3 爬虫】U24_多线程爬虫之Thread类创建多线程
    Verilog 加法器和减法器(1)
    逻辑门电路详解
    RV32C指令集
    RV32A/RV64A指令集
    RV32M/RV64M指令集
    Risc-V指令集中文文档
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/5650935.html
Copyright © 2020-2023  润新知