zoukankan      html  css  js  c++  java
  • 在java项目中使用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
    View Code

    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>
    View Code

    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()); 
    . . . 
    }
    View Code

    当应用启动时,这里就会根据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 我的服务  查询  结束........

    注意当在java类的main方法中测试时,不会在日志文件中添加日志信息

  • 相关阅读:
    Openstack API 开发 快速入门
    virtualBox虚拟机到vmware虚拟机转换
    使用Blogilo 发布博客到cnblogs
    Openstack Troubleshooting
    hdoj 1051 Wooden Sticks(上升子序列个数问题)
    sdut 2430 pillars (dp)
    hdoj 1058 Humble Numbers(dp)
    uva 10815 Andy's First Dictionary(快排、字符串)
    sdut 2317 Homogeneous squares
    hdoj 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列+二分)
  • 原文地址:https://www.cnblogs.com/wanggd/p/3459270.html
Copyright © 2011-2022 走看看