作者QQ:1095737364    QQ群:123300273     欢迎加入!

1.创建项目

  参考:http://www.cnblogs.com/yysbolg/p/6898453.html

2.导入包:在全局工程的pom.xml下

  1. <!--所有版本号定义-->
  2. <properties>
  3. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  4. <logback.version>1.1.7</logback.version>
  5. <slf4j.version>1.7.21</slf4j.version>
  6. <janino.version>2.7.8</janino.version>
  7. </properties>
  8.  
  9. <dependencies>
  10. <!-- 日志文件管理包 -->
  11. <!-- logback+slf4j -->
  12. <dependency>
  13. <groupId>org.slf4j</groupId>
  14. <artifactId>slf4j-api</artifactId>
  15. <version>${slf4j.version}</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>ch.qos.logback</groupId>
  19. <artifactId>logback-core</artifactId>
  20. <version>${logback.version}</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>ch.qos.logback</groupId>
  24. <artifactId>logback-access</artifactId>
  25. <version>${logback.version}</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>ch.qos.logback</groupId>
  29. <artifactId>logback-classic</artifactId>
  30. <version>${logback.version}</version>
  31. </dependency>
  32. <!-- 日志文件管理包-提高性能log输出性能 -->
  33. <!-- janino -->
  34. <dependency>
  35. <groupId>org.codehaus.janino</groupId>
  36. <artifactId>commons-compiler</artifactId>
  37. <version>${janino.version}</version>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.codehaus.janino</groupId>
  41. <artifactId>janino</artifactId>
  42. <version>${janino.version}</version>
  43. </dependency>
  44. </dependencies>

3.在http模块下的resources资源文件夹下面创建logback.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <!-- 级别从高到低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL -->
  4. <!-- 日志输出规则 根据当前ROOT 级别,日志输出时,级别高于root默认的级别时 会输出 -->
  5. <!-- 以下 每个配置的 filter 是过滤掉输出文件里面,会出现高级别文件,依然出现低级别的日志信息,通过filter 过滤只记录本级别的日志 -->
  6. <!-- scan 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 -->
  7. <!-- scanPeriod 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
  8. <!-- debug 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
  9. <configuration scan="true" scanPeriod="60 seconds" debug="false">
  10.  
  11. <!-- 动态日志级别 -->
  12. <jmxConfigurator />
  13.  
  14. <!-- 定义日志文件 输出位置 -->
  15. <property name="log_dir" value="myCat_log" />
  16.  
  17. <!-- 日志最大的历史 30天 -->
  18. <property name="maxHistory" value="30" />
  19.  
  20. <!-- ConsoleAppender 控制台输出日志 -->
  21. <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  22. <encoder>
  23. <pattern>
  24. <!-- 设置日志输出格式 -->
  25. [%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n
  26. </pattern>
  27. </encoder>
  28. </appender>
  29.  
  30. <!-- ERROR级别日志 -->
  31. <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender -->
  32. <appender name="ERROR"
  33. class="ch.qos.logback.core.rolling.RollingFileAppender">
  34. <!-- 过滤器,只记录WARN级别的日志 -->
  35. <!-- 果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志。 -->
  36. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  37. <!-- 设置过滤级别 -->
  38. <level>ERROR</level>
  39. <!-- 用于配置符合过滤条件的操作 -->
  40. <onMatch>ACCEPT</onMatch>
  41. <!-- 用于配置不符合过滤条件的操作 -->
  42. <onMismatch>DENY</onMismatch>
  43. </filter>
  44. <!-- 最常用的滚动策略,它根据时间来制定滚动策略.既负责滚动也负责出发滚动 -->
  45. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  46. <!--日志输出位置 可相对、和绝对路径 -->
  47. <fileNamePattern>
  48. ${log_dir}/error/%d{yyyy-MM-dd}/error-log.log
  49. </fileNamePattern>
  50. <!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件假设设置每个月滚动,且<maxHistory>是6, 则只保存最近6个月的文件,删除之前的旧文件。注意,
                删除旧文件是,那些为了归档而创建的目录也会被删除 -->
  51. <maxHistory>${maxHistory}</maxHistory>
  52. </rollingPolicy>
  53. <encoder>
  54. <pattern>
  55. <!-- 设置日志输出格式 -->
  56. [%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n
  57. </pattern>
  58. </encoder>
  59. </appender>
  60.  
  61. <!-- WARN级别日志 appender -->
  62. <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
  63. <!-- 过滤器,只记录WARN级别的日志 -->
  64. <!-- 果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志。 -->
  65. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  66. <!-- 设置过滤级别 -->
  67. <level>WARN</level>
  68. <!-- 用于配置符合过滤条件的操作 -->
  69. <onMatch>ACCEPT</onMatch>
  70. <!-- 用于配置不符合过滤条件的操作 -->
  71. <onMismatch>DENY</onMismatch>
  72. </filter>
  73. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  74. <!--日志输出位置 可相对、和绝对路径 -->
  75. <fileNamePattern>${log_dir}/warn/%d{yyyy-MM-dd}/warn-log.log</fileNamePattern>
  76. <maxHistory>${maxHistory}</maxHistory>
  77. </rollingPolicy>
  78. <encoder>
  79. <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
  80. </encoder>
  81. </appender>
  82.  
  83. <!-- INFO级别日志 appender -->
  84. <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
  85. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  86. <level>INFO</level>
  87. <onMatch>ACCEPT</onMatch>
  88. <onMismatch>DENY</onMismatch>
  89. </filter>
  90. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  91. <fileNamePattern>${log_dir}/info/%d{yyyy-MM-dd}/info-log.log</fileNamePattern>
  92. <maxHistory>${maxHistory}</maxHistory>
  93. </rollingPolicy>
  94. <encoder>
  95. <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
  96. </encoder>
  97. </appender>
  98.  
  99. <!-- DEBUG级别日志 appender -->
  100. <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
  101. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  102. <level>DEBUG</level>
  103. <onMatch>ACCEPT</onMatch>
  104. <onMismatch>DENY</onMismatch>
  105. </filter>
  106. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  107. <fileNamePattern>${log_dir}/debug/%d{yyyy-MM-dd}/debug-log.log</fileNamePattern>
  108. <maxHistory>${maxHistory}</maxHistory>
  109. </rollingPolicy>
  110. <encoder>
  111. <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
  112. </encoder>
  113. </appender>
  114.  
  115. <!-- TRACE级别日志 appender -->
  116. <appender name="TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  117. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  118. <level>TRACE</level>
  119. <onMatch>ACCEPT</onMatch>
  120. <onMismatch>DENY</onMismatch>
  121. </filter>
  122. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  123. <fileNamePattern>${log_dir}/trace/%d{yyyy-MM-dd}/trace-log.log</fileNamePattern>
  124. <maxHistory>${maxHistory}</maxHistory>
  125. </rollingPolicy>
  126. <encoder>
  127. <pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern>
  128. </encoder>
  129. </appender>
  130.  
  131. <!-- root级别 DEBUG -->
  132. <root>
  133. <!-- 打印debug级别日志及以上级别日志 -->
  134. <level value="debug" />
  135. <!-- 控制台输出 -->
  136. <appender-ref ref="console" />
  137. <!-- 文件输出 -->
  138. <appender-ref ref="ERROR" />
  139. <appender-ref ref="INFO" />
  140. <appender-ref ref="WARN" />
  141. <appender-ref ref="DEBUG" />
  142. <appender-ref ref="TRACE" />
  143. </root>
  144. </configuration>

4.在http模块下的src下新建 LogbackTest.java 文件

  1. package com.service;
  2.  
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5.  
  6. public class LogbackTest {
  7. private final static Logger logger = LoggerFactory.getLogger(LogbackTest.class);
  8.  
  9. public static void main(String[] args) {
  10. logger.debug("输出debug级别的日志.....");
  11. logger.info("输出info级别的日志.....");
  12. logger.error("输出error级别的日志.....");
  13. }
  14. }

5.测试:运行LogbackTest 的 main 方法:执行后实现效果如下:

2.logback+slf4j+janino 配置项目的日志输出的更多相关文章

  1. Logback 整合 RabbitMQ 实现统一日志输出

    原文地址:Logback 整合 RabbitMQ 实现统一日志输出 博客地址:http://www.extlight.com 一.前言 公司项目做了集群实现请求分流,由于线上或多或少会出现请求失败或系 ...

  2. Hibernate日志输出到SLF4J

    一,Hibernate日志问题 工程使用SLF4J,但日志文件一直没有看到Hibernate相关日志及showsql 二,Logback文件配置 修改Hibernate 日志输出指定为SLF4J,当修 ...

  3. 使用 logback + slf4j 进行日志记录

    此处主要介绍maven web工程下如何使用 logback + slf4j  进行日志记录. logback主要包含三个组成部分:Loggers(日志记录器).Appenders(输出目的在).La ...

  4. JAVA中使用log4j及slf4j进行日志输出的方法详解

    JAVA中输出日志比较常用的是log4j,这里讲下log4j的配置和使用方法,以及slf4j的使用方法.  一.下载log4j的架包,并导入项目中,如下: 二.创建log4j.properties配置 ...

  5. Log4j,Log4j2,logback,slf4j日志学习

    日志学习笔记 Log4j Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.数据库等:我们也可以控制每一条日志的输出格式:通过定义每一条 ...

  6. [日志] spring boot + logback 日志输出配置

    一.输出日志到控制台 springboot有很多starter(参考starter)方便快速构建项目依赖组件,logback是springboot默认的日志组件,启动即可看到打印在控制台输出的info ...

  7. springboot+logback日志输出企业实践(上)

    目录 1.引言 2.logback简介 3. springboot默认日志框架-logback 3.1 springboot示例工程搭建 3.2 日志输出与基本配置 3.2.1 日志默认输出 3.2. ...

  8. Log4j,Log4j2,logback,slf4j日志学习(转)

    日志学习笔记Log4jLog4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.数据库等:我们也可以控制每一条日志的输出格式:通过定义每一条日志 ...

  9. lombok+slf4j+logback SLF4J和Logback日志框架详解

    maven 包依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...

随机推荐

  1. 如何在vue中全局引入stylus文件的公共变量

    新建 一个公共的stylus公共文件添加公共变量,如下: 修改下图圈出的文件: 具体的修改如下: // generate loader string to be used with extract t ...

  2. 基于Django+celery二次开发动态配置定时任务 ( 一 )

    需求: 前端时间由于开发新上线一大批系统,上完之后没有配套的报表系统.监控,于是乎开发.测试.产品.运营.业务部.财务等等各个部门就跟那饥渴的饿狼一样需要 各种各样的系统数据满足他们.刚开始一天一个还 ...

  3. Python语法基础练习

  4. 提取PPT中的原始图片

    写Word的不如做Excel 的,做Excel不如做PPT的,写代码的不如做PPT. 为了在电子邮件中上传PPT,其中的图片大都经过压缩,以便缩小PPT的体积.那么如何将PPT中的图片,还原成没有经过 ...

  5. .NET跨平台实践:再谈用C#开发Linux守护进程 — 完整篇

    Linux守护进程是Linux的后台服务进程,相当于Windows服务,对于为Linux开发服务程序的朋友来说,Linux守护进程相关技术是必不可少的,因为这个技术不仅仅是为了开发守护进程,还可以拓展 ...

  6. php -- 文件读写

    ----- 024-file.php ----- <!DOCTYPE html> <html> <head> <meta http-equiv="c ...

  7. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二):数据库设计

    数据库设计 系统主要包含用户(sys_user).组织(sys_dept).角色(sys_role).菜单(sys_menu).角色组织(sys_role_dept).角色菜单(sys_role_me ...

  8. 关于VS2017的安装和WDK的选择问题

    首先就是关于VS2017的安装,我们可以通过微软的官网去寻找我们想要安装的VS版本 我们可以随便选择一个我们需要的版本进行下载,任意版本的VS都可以. 然后下载安装的时候,要进行一下这个安装选项的选择 ...

  9. Conditional特性用法

    说明:根据预处理标识符执行方法.Conditional 特性是 ConditionalAttribute 的别名,可应用于方法或属性类.相对于#if和#endif,更灵活更简洁和不易出错. 例如: # ...

  10. 使用显式的Lock对象取代synchronized关键字进行同步

    Java SE5的java.util.concurrent类库还包含有定义在java.util.concurrent.locks中的显式的互斥机制.Lock对象必须被显式地创建.锁定和释放.因此,它与 ...