关于logback:

http://www.cnblogs.com/warking/p/5710303.html

官方文档

使用logback:

idea创建maven项目

修改pom.xml添加依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.dylan.java</groupId>
<artifactId>javacore</artifactId>
<version>1.0-SNAPSHOT</version> <dependencies>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
<scope>test</scope>
</dependency> </dependencies>
</project>

配置logback.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds"> <property name="log.base" value="E:/ideaProjects/log/" /> <appender name="startup.console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>[%-5level][%d{yyyy-MM-dd HH:mm:ss}][%F:%L] - %msg%n</pattern>
</encoder>
</appender> <appender name="startup.file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<Encoding>UTF-8</Encoding>
<File>${log.base}startup.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log.base}startup_%d{yyyy-MM-dd}.log</FileNamePattern>
<!--保留30天-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!-- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>[%-5level][%d{yyyy-MM-dd HH:mm:ss}][%F:%L] - %msg%n</pattern>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder> -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</layout>
</appender> <root level="ERROR">
<appender-ref ref="startup.console"/>
</root> <root level="DEBUG">
<appender-ref ref="startup.console"/>
</root> <root level="DEBUG">
<appender-ref ref="startup.file"/>
</root> </configuration>

创建测试类:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import java.util.Random; /**
* Created by dylan-pc on 2017/10/23.
*/
public class TestLogback {
private static final transient Logger log= LoggerFactory.getLogger(TestLogback.class); public static void main(String args[]){
//System.out.println("Hello World!");
log.info("程序开始!");
try {
for (int i=1; i<=20; i++){
int r1=(int)(Math.random()*10); //被除数
int r2=(int)(Math.random()*100+99); //除数
log.debug("第"+i+"次计算表达式为:"+r2+"/"+r1);
log.debug("计算结果:"+(r2/r1));
log.info("----------------------------------");
} }catch (ArithmeticException e){
log.error("程序异常!除数等于0!");
//log.error(e.getStackTrace().toString());
}catch (Exception e){
log.error("程序异常!"+e.getMessage());
} log.trace("程序结束!"); } }

查看控制台和日志文件:

"C:\Program Files\Java\jdk1.7.0_80\bin\java" -Didea.launcher.port=7533 "-Didea.launcher.bin.path=D:\program\IntelliJ IDEA 14.1.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.7.0_80\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jfxrt.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.7.0_80\jre\lib\ext\zipfs.jar;E:\ideaProjects\test\javacore\target\test-classes;E:\ideaProjects\test\javacore\target\classes;D:\program\apache-maven-3.5.0\local-repo\org\slf4j\slf4j-api\1.7.21\slf4j-api-1.7.21.jar;D:\program\apache-maven-3.5.0\local-repo\ch\qos\logback\logback-core\1.1.7\logback-core-1.1.7.jar;D:\program\apache-maven-3.5.0\local-repo\ch\qos\logback\logback-classic\1.1.7\logback-classic-1.1.7.jar;D:\program\IntelliJ IDEA 14.1.5\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain TestLogback

22:37:31,675 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]

22:37:31,675 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]

22:37:31,675 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/E:/ideaProjects/test/javacore/target/classes/logback.xml]

22:37:31,765 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set

22:37:31,777 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Will scan for changes in [file:/E:/ideaProjects/test/javacore/target/classes/logback.xml]

22:37:31,777 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 30 seconds

22:37:31,789 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]

22:37:31,793 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [startup.console]

22:37:31,863 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]

22:37:31,866 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [startup.file]

22:37:31,871 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@13:19 - no applicable action for [Encoding], current ElementPath  is [[configuration][appender][Encoding]]

22:37:31,880 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1026546903 - No compression will be used

22:37:31,882 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1026546903 - Will use the pattern E:/ideaProjects/log/startup_%d{yyyy-MM-dd}.log for the active file

22:37:31,887 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - The date pattern is 'yyyy-MM-dd' from file name pattern 'E:/ideaProjects/log/startup_%d{yyyy-MM-dd}.log'.

22:37:31,887 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Roll-over at midnight.

22:37:31,890 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Setting initial period to Mon Oct 23 22:36:58 CST 2017

22:37:31,894 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[startup.file] - This appender no longer admits a layout as a sub-component, set an encoder instead.

22:37:31,894 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[startup.file] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.

22:37:31,894 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[startup.file] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details

22:37:31,895 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[startup.file] - Active log file name: E:/ideaProjects/log/startup.log

22:37:31,895 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[startup.file] - File property is set to [E:/ideaProjects/log/startup.log]

22:37:31,897 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to ERROR

22:37:31,897 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [startup.console] to Logger[ROOT]

22:37:31,898 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG

22:37:31,898 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [startup.console] to Logger[ROOT]

22:37:31,898 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG

22:37:31,898 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [startup.file] to Logger[ROOT]

22:37:31,898 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.

22:37:31,899 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@114bc6a3 - Registering current configuration as safe fallback point
[INFO ][2017-10-23 22:37:31][TestLogback.java:14] - 程序开始!

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第1次计算表达式为:107/9

[DEBUG][2017-10-23 22:37:31][TestLogback.java:20] - 计算结果:11

[INFO ][2017-10-23 22:37:31][TestLogback.java:21] - ----------------------------------

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第2次计算表达式为:143/9

[DEBUG][2017-10-23 22:37:31][TestLogback.java:20] - 计算结果:15

[INFO ][2017-10-23 22:37:31][TestLogback.java:21] - ----------------------------------

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第3次计算表达式为:192/7

[DEBUG][2017-10-23 22:37:31][TestLogback.java:20] - 计算结果:27

[INFO ][2017-10-23 22:37:31][TestLogback.java:21] - ----------------------------------

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第4次计算表达式为:163/4

[DEBUG][2017-10-23 22:37:31][TestLogback.java:20] - 计算结果:40

[INFO ][2017-10-23 22:37:31][TestLogback.java:21] - ----------------------------------

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第5次计算表达式为:148/4

[DEBUG][2017-10-23 22:37:31][TestLogback.java:20] - 计算结果:37

[INFO ][2017-10-23 22:37:31][TestLogback.java:21] - ----------------------------------

[DEBUG][2017-10-23 22:37:31][TestLogback.java:19] - 第6次计算表达式为:193/0

[ERROR][2017-10-23 22:37:31][TestLogback.java:25] - 程序异常!除数等于0!

[DEBUG][2017-10-23 22:37:31][TestLogback.java:31] - 程序结束!
Process finished with exit code 0

start

...

19:39:14.928 [main] DEBUG TestLogback - 第9次计算表达式为:194/5
19:39:14.928 [main] DEBUG TestLogback - 计算结果:38
19:39:14.928 [main] INFO  TestLogback - ----------------------------------
19:39:14.928 [main] DEBUG TestLogback - 第10次计算表达式为:160/2
19:39:14.928 [main] DEBUG TestLogback - 计算结果:80
19:39:14.928 [main] INFO  TestLogback - ----------------------------------
19:44:39.451 [main] INFO  TestLogback - 程序开始!
19:44:39.459 [main] DEBUG TestLogback - 第1次计算表达式为:116/8
19:44:39.459 [main] DEBUG TestLogback - 计算结果:14
19:44:39.459 [main] INFO  TestLogback - ----------------------------------
19:44:39.459 [main] DEBUG TestLogback - 第2次计算表达式为:194/5
19:44:39.459 [main] DEBUG TestLogback - 计算结果:38
19:44:39.459 [main] INFO  TestLogback - ----------------------------------
19:44:39.459 [main] DEBUG TestLogback - 第3次计算表达式为:109/3
19:44:39.459 [main] DEBUG TestLogback - 计算结果:36
19:44:39.459 [main] INFO  TestLogback - ----------------------------------
19:44:39.459 [main] DEBUG TestLogback - 第4次计算表达式为:109/0
19:44:39.459 [main] ERROR TestLogback - 程序异常!

...

logback日志组件使用案例的更多相关文章

  1. Logback 日志组件的使用

    Logback 是由 log4j 创始人设计的又一个开源日志组件. 一. logback 的介绍 ​ logback 当前分成三个模块:logback-core,logback- classic 和 ...

  2. 五分钟秒懂Java日志组件

    Java中有许多种日志记录方式,有些API有占位符,有些API没占位符,初学的人可能会搞不清楚这些日志组件的由来.我一开始的时候也是很懵逼的,后来一点点弄懂了于是就又了这篇文章. 在Java中进行日志 ...

  3. java日志组件介绍(common-logging,log4j,slf4j,logback )

    转自:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging是apache提供的一个通用的日志 ...

  4. 转:java日志组件介绍(common-logging,log4j,slf4j,logback )

    原网址:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging common-logging是 ...

  5. 日志组件logback的介绍及配置使用方法

    一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-acc ...

  6. 日志组件 logback

    一.简介 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-access.logb ...

  7. 【转】java日志组件介绍(common-logging,log4j,slf4j,logback )

    common-logging common-logging是apache提供的一个通用的日志接口.用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, comm ...

  8. 日志处理(二) 日志组件logback的介绍及配置使用方法(转)

    本文转自:http://www.cnblogs.com/yuanermen/archive/2012/02/13/2348942.html http://www.cnblogs.com/yuanerm ...

  9. 转:日志组件logback的介绍及配置使用方法

    转自:http://blog.csdn.net/zgmzyr/article/details/8267072 一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.lo ...

  10. 日志组件logback的介绍及配置使用方法(一)

    一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-acc ...

随机推荐

  1. Linux-进程管理-ps-kill

  2. [转帖]Nginx应用调优案例

    https://bbs.huaweicloud.com/blogs/146367 [摘要] 1 问题背景nginx的应用程序移植到TaiShan服务器上,发现业务吞吐量没有达到硬件预期,需要做相应调优 ...

  3. Docker镜像精简方法之二 COPY vs ADD 与镜像层

    Docker镜像精简方法之二 COPY vs ADD 与镜像层 摘要 昨天只是讲了一下大体的思路. 但是没有实操. 今天想着修改一下默认的打包镜像的命令,验证一下效果 原始命令 FROM adopto ...

  4. [转帖]关于Linux操作系统中LUN的队列深度(queue_depth)

    Linux中的queue_depth(队列深度),可以用lsscsi查看. 不过今天在我的vm 虚拟机环境中(无外界存储),是没有lsscsi命令. 不过,从网上,搜到了如下的信息: $ lsscsi ...

  5. [转帖]kubelet 原理解析五: exec的背后

    https://segmentfault.com/a/1190000022163850 概述 线上排查pod 问题一般有两种方式,kubectl log或者kubectl exec调试.如果你的 lo ...

  6. git中git cherry-pick的使用

    git中git cherry-pick的使用 A分支是从远端的开发分支dev拉取的 B分支是从远端的测试分支rel拉取的 现在我们遇见一个问题. 我们在A分支修改了代码.并且推送到了远端的dev分支. ...

  7. 9.0 Python 内置模块应用

    Python 是一种高级.面向对象.通用的编程语言,由Guido van Rossum发明,于1991年首次发布.Python 的设计哲学强调代码的可读性和简洁性,同时也非常适合于大型项目的开发.Py ...

  8. Gin 中间件

    中间件 在Gin框架中,中间件(Middleware)指的是可以拦截http请求-响应生命周期的特殊函数,在请求-响应生命周期中可以注册多个中间件,每个中间件执行不同的功能,一个中间执行完再轮到下一个 ...

  9. layui下拉框可手动输入

    先看效果 layui版本:layui@2.8.17 HTML代码: <div class="layui-form-item"> <label class=&quo ...

  10. 【STL源码剖析】vector类模拟实现 了解底层-走进底层-掌握底层【超详细的注释和解释】

    今天博主继续带来STL源码剖析专栏的第二篇博客了! 今天带来vector的模拟实现! 其实在很多人学习C++过程中,都是只学习一些STL的使用方式,并不了解底层的实现.博主本人认为,这样的学习这样的技 ...