logback简单配置详解
来源:互联网 发布:软件自动升级原理 编辑:程序博客网 时间:2024/06/05 00:35
注意:这是main或是test执行时候的样子,如果是web项目,log日志生成到中间件的目录下,
比如:
如果使用tomcat,则web项目的log日志生成到tomcat/bin/user_path(我的是logs路径,可以配置到pom.xml或是写死到里面,不过因为多系统多软件,还是建议不要写绝对路径)
下面就是简单的案例:
idea新建项目,项目结构和jar包:
类:
public class Test { private static Logger Log = LoggerFactory.getLogger(Test.class); @org.junit.Test public void testLogBack(){ Log.debug("debug测试"); Log.info("info测试"); Log.error("error测试"); try{ throw new RuntimeException("error RuntimeException 测试"); }catch(Exception e){ Log.error(e.getMessage(),e); } }}
logback.xml配置
<?xml version="1.0" encoding="UTF-8"?><!-- scan:xml文件如果发生改变,将会被重新加载,默认值是true scanPeriod:间隔扫描xml是否改变,scan为true是生效。默认是ms,默认间隔时间是1分钟。 debug:当此属性设置为true时,将打印出logback.xml内部日志消息,默认值是false。 --><configuration debug="true" scan="true" scanPeriod="30 seconds"> <!-- name:标签名,为了让其他标签调用的唯一标示 class:引用的类,从此类中可以看出该appender标签定义的是日志输出的位置 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- 常用 %-数字xxx 分隔多少,不要和属性分开写,不挨着会报错 %d{HH……} | d 日期,分开会报错 %thread 线程 %level | p | le 显示级别 %logger{数字} | c | lo 类文件,虽然和class一样,但是如果包.类很长,这个可以获取简约长度展示 %class | c 输出同上 %file | F 是哪个.java文件 %m | msg | message 输出信息 %M 方法 %line | L 错误的行号,少用 %caller{数字} 输出信息深度 --> <pattern>%d{HH:mm:ss.SSS} [%-5level] [%-5class] [%-5M] - [%m]%n </pattern> </encoder> </appender> <!-- 滚动日志 --> <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/error.log</file> <encoder> <pattern>%d{HH:mm:ss.SSS} [%-5level] [%-5class] [%-5M] - [%m] %-5line%n </pattern> <charset>GBK</charset> </encoder> <!-- 可以过滤在error日志中只输出error的信息 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <!-- 触发策略:当日志文件满足5MB就会出发回滚策略--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>5MB</maxFileSize> </triggeringPolicy> <!-- 滚动策略 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logs/error.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 保留30天 --> <maxHistory>30</maxHistory> </rollingPolicy> </appender> <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/info.log</file> <encoder> <pattern>%d{HH:mm:ss.SSS} [%-5level] [%-5class] [%-5M] - [%m]%n </pattern> <charset>GBK</charset> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <!-- 回滚策略: 其中minIndex和maxIndex分别对应的是满足5MB的日志文件的命名序号(1~10)对应%i.log中的i值。 如:xxx-2016-1.log,xxx-2016-2.log等,如果超过10个就会覆盖第一个 --> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>logs/info.%d{yyyy-MM-dd}-%i.log</fileNamePattern> <minIndex>1</minIndex> <maxIndex>30</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>5MB</maxFileSize> </triggeringPolicy> </appender> <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>logs/debug.log</file> <encoder> <pattern>%d{HH:mm:ss.SSS} [%-5level] [%-5class] [%-5M] - [%m]%n </pattern> <charset>GBK</charset> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>DEBUG</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>logs/debug.%d{yyyy-MM-dd}-%i.log.zip</fileNamePattern> <minIndex>1</minIndex> <maxIndex>30</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>5MB</maxFileSize> </triggeringPolicy> </appender> <!-- 设置哪个目录或者包,类使用哪个日志 将控制impl包下的所有类的日志的打印,level是打印级别:debug,如果不设置level,它将继承它的上级<root>的日志级别“DEBUG” 如果没有设置addtivity,默认为true,将此loger的打印信息向上级传递; 如果没有设置appender-ref,此loger本身不打印任何信息。 --> <root level="debug"> <appender-ref ref="CONSOLE" /> <appender-ref ref="ERROR" /> <appender-ref ref="INFO" /> <appender-ref ref="DEBUG" /> </root> <!-- 当执行impl类的方法时,会首先执行本身引用的appender-ref标签设置的格式打印; 当执行不在impl中的方法时,会将级别为“DEBUG”及大于“DEBUG”的日志信息传递给root, root接到下级传递的信息,交给已经配置好的名为“STDOUT”和“log_file”的appender处理,“STDOUT”appender将信息打印到控制台,“log_file”appender将信息打印到日志文件; --> <!--打印mybatis的SQL语句--> <logger name="com.ibatis" level="DEBUG" /> <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG" /> <logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG" /> <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" /> <logger name="java.sql.Connection" level="DEBUG" /> <logger name="java.sql.Statement" level="DEBUG" /> <logger name="java.sql.PreparedStatement" level="DEBUG" /> <!--日志异步到数据库 --> <!--<appender name="DB" class="ch.qos.logback.classic.db.DBAppender">--> <!--日志异步到数据库 --> <!--<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource"> <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource"> <driverClass>com.mysql.jdbc.Driver</driverClass> <url>jdbc:mysql://127.0.0.1:3306/databaseName</url> <user>root</user> <password>root</password> </dataSource> </connectionSource> </appender>--></configuration>
0 0
- logback简单配置详解
- logback 配置详解
- logback配置详解1
- logback 常用配置详解
- logback 配置详解
- logback 常用配置详解
- logback配置详解
- logback 配置详解
- logback 配置详解
- logback配置详解
- Logback常用配置详解
- logback 配置详解
- logback 配置详解
- logback.xml配置详解
- logback 配置详解
- logback 配置详解
- logback配置详解
- logback配置详解
- JFinal学习进行中 (1)
- lombok加入@Data注解之后,get和set方法提示未定义
- Laravel Packages 开发
- python求各种距离公式
- 多线程 pthread学习之一
- logback简单配置详解
- Android Studio自动补全代码问题总结,,,,,,,,,后续更新
- Android 6.0及更高版本Android Runtime Permission(一)
- Unity3D打开摄像头并且调节分辨率
- HDU-5868-Different Circle Permutation-Burnside定理和polay计数
- 简单的Python脚本实践
- JavaScript中实现继承的几种方式
- Linux性能优化和监控系列(一)top工具
- 兼容iOS 10 资料整理笔记