在Spring项目中使用Log4j添加日志记录及异常单独保存配置

  • 添加log4j的类库

如果你使用了Maven来管理依赖,在pom.xml中添加如下配置,其它形式自行对应

<!--添加属性log4j版本-->
<properties>
  <log4j.version>1.2.17</log4j.version>
</properties>
...
<!--添加属性log4j依赖-->
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>${log4j.version}</version>
</dependency>
  • 在WEB-INF目录下添加log4j.properties,D的配置是debug级别以上输出到debug.log文件中,E的配置是error级别以上的输出到error.log文件中。以下配置包含说明含义在内,使用时请视情况修改
###设置日志输出等级###
log4j.rootLogger=debug,stdout,D,E

# Spring Stuff
log4j.logger.org.springframework=INFO
log4j.logger.org.springframework.oxm=INFO

##控制台日志输出配置
#日志输出目的地:ConsoleAppender(控制台)、FileAppender(文件)、DailyRollingFileAppender(按天产生日志文件)、RollingFileAppender(指定日志文件大小)、WriterAppender(流格式自己定义输出)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#日志输出格式:HTMLLayout(HTML表格形式的布局)、PatternLayout(灵活布局模式)、SimpleLayout(包含日志信息的级别和信息字符串)、TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#格式化信息参数:%m(代码指定的输出消息)、%p(日志优先级)、%r(应用启动至输出log的毫秒耗时)、%c(类路径)、%t(线程名)、%n(换行符)、%d(时间,可在{}中指定格式)、%l(日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数)
log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd hh\:mm\:ss}] [%p] %c] [%m] %n

##日志文件输出配置
log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
#是否内容追加,false会覆盖已有内容,默认为true
log4j.appender.D.Append=true
#日志输出等级分离:只输出该等级以上的日志
log4j.appender.D.Threshold=DEBUG
#日志文件保存路径
log4j.appender.D.File=D:\\log\debug.log
#可以自定义生成日志的间隔,时间格式精确到mm即是每分钟生成一个文件,文件名为debug_'yyyy-MM-dd-HH-mm'.log
#log4j.appender.dufLog.DatePattern = '_'yyyy-MM-dd-HH-mm'.log'
log4j.appender.D.layout=org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=[时间\:%d{yyyy-MM-dd hh\:mm\:ss}] [级别\:%p] [类\:%c]  [消息\:%m] %n

##日志文件输出配置
log4j.appender.E=org.apache.log4j.RollingFileAppender
log4j.appender.E.Append=true
log4j.appender.E.Threshold=ERROR
log4j.appender.E.File=D:\\log\log\error.log
log4j.appender.E.layout=org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern=[时间\:%d{yyyy-MM-dd hh\:mm\:ss}] [级别\:%p] [类\:%c]  [消息\:%m] %n
#指定日志文件大小:单位可以是KB、MB、GB,在日志文件到达该大小时,将会自动滚动,即将原来的内容移到error.log.1文件
log4j.appender.E.MaxFileSize=100KB
#指定可以产生的滚动文件的最大数
log4j.appender.E.MaxBackupIndex=3
  • 在项目的web.xml中添加log4j配置
<!--log4j配置-->
<context-param>
  <param-name>log4jConfigLocation</param-name>
  <param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
  <param-name>log4jRefreshInterval</param-name>
  <param-value>6000</param-value>
</context-param>
...
<!--配置log4j监听器-->
<listener>
  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
  • 很简单,已经配置完了,接下来使用就可以了
@Controller
public class ControllerDemo {

    Logger logger =Logger.getLogger(ControllerDemo.class);

    @RequestMapping("/showTime")
    public String showTime(Model model){
        DateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String result ="当前时间是:" + format.format(new Date());
        model.addAttribute("result",result);
        logger.debug("收到请求,结果是:" + result + ",debug");
        logger.info("收到请求,结果是:" + result + ",info");
        logger.error("收到请求,结果是:" + result + ",error");
        return "index";
    }
}

控制台输出效果如下,有三种级别的输出:

在D盘log文件夹中有debub.log和error.log两个文件,分别有对应配置的日志输出,就不一一展示了

转载于:https://my.oschina.net/lixuelong/blog/1581982

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值