zoukankan      html  css  js  c++  java
  • Logback使用

      Logback其实提供了的是一套完整的日志解决方案,如果只是觉得可以通过SLF4j + Logback-Classic就完事了,那么你把使用logback想的太简单了。

      1.获取logback的正确姿势:声明为静态变量。否则每一个类都会通过LoggerFactory获取一个logger实例,这样可能导致logger泛滥,声明为静态变量后,可以实现该类的所有实例共享一个logger;参看logback separate

      2.RollingFileAppender正常情况下不要使用prudent属性(或者设置为false),除非你的多个虚拟机写同一个文件,我觉得在真正的项目中这样的场景并不多;Rolling日志生成的理想形式是:生成一个叫做a.log的文件,每长到一定程度之后,将会自动进行重命名,再生成一个a.log的日志文件,以此类推;总是向a.log文件输出的好处是我们可以轻松的根据tail -f a.log来跟踪日志;但是如果你设置prudent为true之后,你就失去了这个遍历,文件管道将会总是输出到新命名的文件中。

      3.需要把日志文件设置的大一些,因为logback的rolling机制是重命名当前日志文件,创建一个新的a.log(prudent默认值或者手动设置为false),这意味着文件管道(句柄))发生了变化;所以一旦日志满了,被归档之后,tail -f a.log控制台也就不再输出,除非你再重新定位tail -f a.log,我们项目现在设置为200M(其实还是小)。

      4.有的项目日志文件很大,但是都是重要的根据,可以将归档的log进行压缩,方式就是<fileNamePattern>节点中,将文件名称规则最后的后缀名字设置为.gz即可,前面规则不变。参看logback appender;gz的压缩了目测可以达到1:5,空间节省还是很明显的。

      5.如果想要把日志的ERROR单独输出,就可以通过在logger节点中添加appender,在appender中指定级别即可,但是logger节点不可以声明level,完全依赖于append自己定义的级别。

      6.控制台有的时候回卡顿程序(当输出太猛的时候),其实可以考虑将控制台输出的appender在生产环境关掉;需要跟踪日志,tail -f a.log。

      

  • 相关阅读:
    传奇检测命令大全(常用命令)
    传奇版本中利用NPC迅速给人物加血脚本制作
    传奇泡点地图制作脚本
    双击包裹物品自动解包设置方法_传奇版本技术
    传奇地图事件触发脚本
    单机架设传奇服务器第47课:定时器OnTimer功能详解
    单机架设传奇服务器:机器人运行脚本文件
    检测某个地图某个怪物的数量的脚本
    检测当前人物是否在安全区脚本命令
    假人配置说明
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/6654433.html
Copyright © 2011-2022 走看看