使用logback输出日志,自定义输出格式

10 篇文章 2 订阅

在开发中比较常见的还是log4j,基本上每个开发者都知道,但是使用logback输出日志,估计用的人不多,其实这两个都是slf4j的实现,而且是同一个作者。

Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记

录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志

的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。。Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个改良版本。logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。 Logback是要与SLF4J结合起来用两个组件的官方网站如下:

    logback的官方网站: http://logback.qos.ch

    SLF4J的官方网站:http://www.slf4j.org

使用logback的好处:比log4j更加好用,而且效率更高。

首先在pom.xml中引入如下依赖jar:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.1.8</version>
</dependency>
配置logback.xml文件,配置信息如下:

<?xml version="1.0" encoding="UTF-8" ?>
 <configuration scan="true" scanPeriod="10 minutes">
 <property name="LOG_HOME" value="F:\\logs"/>

 <appender name="stdot" class="ch.qos.logback.core.ConsoleAppender">        
  <layout class="ch.qos.logback.classic.PatternLayout">           
   <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p][%c][%M][%L]-> %m%n</pattern>        
  </layout>
 </appender>
 <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">       
  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">           
   <FileNamePattern>${LOG_HOME}/log.%d{yyyy-MM-dd}(%i).log</FileNamePattern>          、       
   <cleanHistoryOnStart>true</cleanHistoryOnStart>          
   <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">              
    <MaxFileSize>10MB</MaxFileSize>          
   </TimeBasedFileNamingAndTriggeringPolicy>      
  </rollingPolicy>       
  <encoder>       
    <charset>utf-8</charset>           
    <pattern>%d{yyyy-MM-dd HH:mm:ss} [%p][%c][%M][%L]-> %m%n</pattern>  
  </encoder>       
  <append>false</append>       
  <prudent>false</prudent>
 </appender>

 <logger name="org.mortbay.log" additivity="false"  level="ERROR">
       <appender-ref ref="stdot" />
 </logger>
 
 <logger name="org.mybatis.spring" additivity="false"  level="ERROR">
       <appender-ref ref="stdot" />
 </logger>
 
 <root level="debug">     
  <appender-ref ref="stdot" />    
  <appender-ref ref="file" />
 </root>

</configuration>


其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,只有等于及高于这个级别的才进行处理,则应用程序中所有DEBUG级别的日志信息将不被打印出来。ALL:打印所有的日志,OFF:关闭所有的日志输出。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地

配置完成之后把logback.xml文件放在资源文件目录下,启动项目即可。logback会根据logback这个名称自己去匹配加载。

<pattern>%d{yyyy-MM-dd HH:mm:ss} [%p][%c][%M][%L]-> %m%n</pattern> 

以上格式说明如下:

%m

输出代码中指定的消息

%p

输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL

%r

输出自应用启动到输出该log信息耗费的毫秒数

%c

输出所属的类目,通常就是所在类的全名

%t

输出产生该日志事件的线程名

%n

输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”

%d

输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},

输出类似:2002年10月18日 22:10:28,921

%l

输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)


  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
概述 闪电狗监控(flash-dog)起源于杭州斯凯网络科技有限公司一个真实项目,主要优点是轻巧快捷,非侵入式,不影响业务代码,只需加入几个jar包和修改log4j配置文件,就能监控任意指标,如CPU,内存、线程,游戏收入,在线人数等等。2012年开源后,在游戏、支付、教育等多种互联网公司广泛应用。 在线demo ,http://115.28.11.12:8080/flash-dog/ 用户 admin 密码 123456 图文教程 安装部署应用接入代理模式logback扩展 视频教程 入门使用 项目起源、原理介绍、安装部署、应用接入 深入了解(计划中) 脚本模板介绍、日志监控、性能监控、在线人数监控、关键字监控、按天统计 开发与拓展(计划中) 项目结构、模块分解、maven和angular相关介绍 界面快照 常见问题 是否可以监控业务 可以,默认是监控jvm性能和错误日志,里面提供了脚步模板,稍作修改便能通过分析业务日志进行业务统计和监控 是否需要连接业务数据库 不需要,只需要连接mongodb 什么是仓库模式 mongdob的collection的一种模式,仓库模式,有固定大小,空间会重复利用,如设置成1G,数据超过1G,新数据会替老数据,非仓库模式会持续增加,所以对日志表,强烈推荐使用仓库模式。 为什么添加的新项目没有看到图表 大部分问题都是数据库链接问题,可在项目设置和日志里面查看数据链接是否正常。遵守命名约定可以减少低级错误 如何输出自定义变量 通过log4j的MDC实现,MDC内部使用了类似map的机制来存储信息,相对应的方法,MDC.put(key,value);在配置PatternLayout的时候使用:%x{key}来输出对应的value,如跟踪用户请求的所有日志: java代码:MDC.put("UUID", userId);log4j配置:log4j.appender.MongoDB.layout.ConversionPattern={"timestamp":"%d","level":"%p","className":"%c","message":"%m","pid":"%V","ip":"%I",uuid:"%X{UUID}"} 如何监控tomcat访问日志 1.先配置将tomcat日志输出log4j,下载tomcat-juli.jar到tomcat/bin,覆盖原来的jar,下载tomcat-util.jar到tomcat/lib,复制log4mongo-java ,flash-dog-api-log4j 和 mongo-java-driver ,log4j.properties到lib 2.修改tomcat/conf/server.xml中access-log部分: className=“com.skymobi.tomcat.Log4JAccessLogValve” 3.重启tomcat,在logs/catalina.log 可以看到访问日志 标签:监控平台  日志分享

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值