之前项目中日志多用的log4j2,偶然看到在importNew看到了logback,自己查了下,发现Logback和log4j是非常相似的,其作者也是同一个人,并且logback相比于log4j性能更高,因此决定在新项目中使用logback,网上查了写资料,发现大都不能满足自己的需求,因此自己整理了一份,亲测可用,记录下来以备后用。

  使用前引入相关的jar,在这里使用maven构建项目,对应的依赖如下:

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.2.3</version>
      </dependency>

  在项目根目录下创建src/main/resourse包,然后创建logback.xml,具体配置如下: 

<?xml version="1.0" encoding="UTF-8"?><!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。-->
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 --><property name="LOG_HOME" value="D:/logback" /><!-- 控制台输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">  <encoder>  <!-- %.-1level 只显示信息级别的首字母,%-5level 左对齐显示信息级别全称 -->  <Pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] --%mdc{client} %msg%n</Pattern>  </encoder>  </appender>  <!-- 每天生成日志文件,文件大小超过50则新生成一个文件,同时将旧文件按${LOG_HOME}/logs/aa.%d{yyyy-MM-dd}.%i.log.zip格式压缩,文件保存30天 --><appender name="AA" class="ch.qos.logback.core.rolling.RollingFileAppender">  <file>${LOG_HOME}/aa.log</file> <!-- 日志名称 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">  <fileNamePattern>${LOG_HOME}/logs/aa.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>  <maxFileSize>50MB</maxFileSize>  <!-- 日志文件过大会使的编辑器打开非常慢,因此设置日志最大50MB --><maxHistory>30</maxHistory>  <!-- 保存30天 --><totalSizeCap>10GB</totalSizeCap>  <!-- 总日志大小 --></rollingPolicy>  <!-- encoder负责两件事,一是把日志信息转换成字节数组,二是把字节数组写入到输出流。 --><encoder>  <pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>  </encoder>  <!-- 过滤器,可以过滤掉不符合条件的日志,INFO及以上的日志被处理,其它的拒绝 --><filter class="ch.qos.logback.classic.filter.LevelFilter">  <level>INFO</level>  <onMatch>ACCEPT</onMatch>  <onMismatch>DENY</onMismatch>  </filter>  </appender> <appender name="BB" class="ch.qos.logback.core.rolling.RollingFileAppender">  <file>${LOG_HOME}/bb.log</file>  <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">  <fileNamePattern>${LOG_HOME}/logs/bb.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>  <maxFileSize>50MB</maxFileSize>  <maxHistory>30</maxHistory>  <totalSizeCap>10GB</totalSizeCap>  </rollingPolicy>  <encoder>  <pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>  </encoder>  <filter class="ch.qos.logback.classic.filter.LevelFilter">  <level>INFO</level>  <onMatch>ACCEPT</onMatch>  <onMismatch>DENY</onMismatch>  </filter>  </appender><appender name="update" class="ch.qos.logback.core.rolling.RollingFileAppender">  <file>${LOG_HOME}/update.log</file>  <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">  <fileNamePattern>${LOG_HOME}/logs/update.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>  <maxFileSize>50KB</maxFileSize>  <maxHistory>7</maxHistory>  <totalSizeCap>10GB</totalSizeCap>  </rollingPolicy>  <encoder>  <pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>  </encoder>  <filter class="ch.qos.logback.classic.filter.LevelFilter">  <level>INFO</level>  <onMatch>ACCEPT</onMatch>  <onMismatch>DENY</onMismatch>  </filter>  </appender><!-- java项目中com.example.demo包下通过LoggerFactory.getLogger(Demo.class)获取的日志全部由AA appender处理 --><logger name="com.example.demo" additivity="false"><appender-ref ref="AA" /></logger><!-- java项目中com.example.demo包下通过LoggerFactory.getLogger(Demo2.class)获取的日志全部由BB appender处理 --><logger name="com.example.demo.bb"><appender-ref ref="BB" /></logger><!-- java项目中任意类中通过LoggerFactory.getLogger("update")获取的日志全部由update appender处理 ,例如想把所有的更新操作的日志放在一起,便于查看--><logger name="update" ><appender-ref ref="update" /></logger><!-- 根日志,所有logger默认继承自root,打印信息向上级传递,所以以上logger所打印的日志默认被 STDOUT appender再处理一遍,也就是会被打印到控制台,可以再通过设置logger的additivity="false",使得不再向上传递--><root level="DEBUG"><appender-ref ref="STDOUT" /></root></configuration>

  

转载于:https://www.cnblogs.com/hhhshct/p/9084036.html

logback.xml文件配置(按时间、文件大小和log名称生成日志)相关推荐

  1. Logback.xml 文件    配置

    2019独角兽企业重金招聘Python工程师标准>>> Logback.xml 文件    配置 <?xml version="1.0" encoding= ...

  2. eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池

    mysql8.0在eclipse中通过xml文件配置数据库连接池 1.关于Mysql8.0 2.数据库连接池(DBCP) 3.准备工作 4.配置context.xml 5.配置web.xml 6.调用 ...

  3. SpringSecurity使用 配置文件 和wen.xml 文件配置

    目录 1.web.xml 文件配置 2.spring-security  普通 为使用自己创建的认证类 1.web.xml 文件配置 !-- 配置SpringSecurity的拦截器 -->&l ...

  4. java spring bean配置文件_Spring基于xml文件配置Bean过程详解

    这篇文章主要介绍了spring基于xml文件配置Bean过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通过全类名来配置: class:be ...

  5. 从前后端分离到前后端整合的“退步”(二)pom.xml文件配置

    系列文章目录 从前后端分离到前后端整合的"退步"(一)项目结构 从前后端分离到前后端整合的"退步"(二)pom.xml文件配置 Spring Boot + Vu ...

  6. Java 中JAF、CORBA、JTA、JAXB、JAX-WS使用Maven的pom.xml文件配置

    本文主要介绍Java EE中已经弃用的模块,需要单独引用JAF(java.activation).CORBA(java.corba).JTA(java.transaction).JAXB(java.x ...

  7. AndroidManifest.xml文件配置教程及相关指令详解

    AndroidManifest.xml 是每个android程序中必须的文件,它位于整个项目的根目录.我们每天都在使用这个文件,往里面配置程序运行所必要的组件,权限,以及一些相关信息.但是对于这个文件 ...

  8. logback.xml 常用配置详解

    一:根节点<configuration>包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文 ...

  9. SpringBoot通过yml和xml文件配置日志输出

    SpringBoot中默认使用Logback进行日志输出,可以同时使用通过logback的配置文件logback.xml或是SpringBoot框架的配置文件application.yml进行配置. ...

最新文章

  1. 二分法:查找区间search for a range
  2. selenium截图模糊_Selenium截屏 图片未加载的问题解决--【懒加载】
  3. web中静态资源和动态资源的概念及区别
  4. 苹果面向Mac发布英特尔处理器漏洞缓解措施
  5. codeigniter CI 框架 在helper 中 使用 全局变量 方法
  6. BZOJ1014 [JSOI2008]火星人
  7. 互联网硅谷投资教父 保罗·格雷厄姆 Paul Graham
  8. PHP如何应对高并发
  9. Python实现给qq自动发消息 终于有人来和我说早安晚安了吗...
  10. c语言程序设计题答案,C语言程序设计习题(含答案).doc
  11. 15个素材下载网站,从此不做「伸手党」!
  12. RS422-RS485-RS232标准接线
  13. Office中常见度量单位(转)
  14. 煲耳机,看到一篇文章分享下
  15. Java基础——注解和反射——注解自定义与反射具体使用实例
  16. Jenkins之分布式部署及构建(master-slaver)
  17. 三年级优秀书籍推荐_三年级必读课外书5本 小学三年级必读优秀书目推荐
  18. css 裁剪背景图片,CSS裁剪背景图片的歪招
  19. Markdown中常用LaTex数学符号和数学公式排版整理
  20. ABB机器人的几种停止指令详解

热门文章

  1. linux系统查看服务进程,Linux服务器系统详细查看进程启动时间
  2. java类对象转化成字符串_String类型字符串(xml格式)转换成java对象类型
  3. 自动划分-------训练集+验证集+测试集(code,自己设置比例)
  4. 模拟linux内核异常,Linux内核异常
  5. 正在搜索开发人员模式安装包_每个 Java 开发人员都应该知道的 10 个基本工具...
  6. Datawhale 零基础入门数据挖掘-Task3 特征工程
  7. 贝壳找房的深度学习模型迭代及算法优化
  8. 毕业设计项目,微博语料情感分析,文本分类
  9. 卷积神经网络的卷积核大小、个数,卷积层数如何确定呢?
  10. java 盘符 系统_JAVA小白预备内容