springboot+logback日志规范

<!--?</code--><code class="xml keyword">xml</code> <code class="xml color1">version</code><code class="xml plain">=</code><code class="xml string">"1.0"</code> <code class="xml color1">encoding</code><code class="xml plain">=</code><code class="xml string">"UTF-8"</code><code class="xml plain">?></code>

< configuration >
&#x8BF4;&#x660E;&#xFF1A;
1&#x3001;&#x65E5;&#x5FD7;&#x7EA7;&#x522B;&#x53CA;&#x6587;&#x4EF6;
&#x65E5;&#x5FD7;&#x8BB0;&#x5F55;&#x91C7;&#x7528;&#x5206;&#x7EA7;&#x8BB0;&#x5F55;&#xFF0C;&#x7EA7;&#x522B;&#x4E0E;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x540D;&#x76F8;&#x5BF9;&#x5E94;&#xFF0C;&#x4E0D;&#x540C;&#x7EA7;&#x522B;&#x7684;&#x65E5;&#x5FD7;&#x4FE1;&#x606F;&#x8BB0;&#x5F55;&#x5230;&#x4E0D;&#x540C;&#x7684;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x4E2D;
&#x4F8B;&#x5982;&#xFF1A;error&#x7EA7;&#x522B;&#x8BB0;&#x5F55;&#x5230;{log.context.name}_error.log&#xFF08;&#x8BE5;&#x6587;&#x4EF6;&#x4E3A;&#x5F53;&#x524D;&#x8BB0;&#x5F55;&#x7684;&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#xFF09;&#xFF0C;&#x800C;{log.context.name}__error.log&#x4E3A;&#x5F52;&#x6863;&#x65E5;&#x5FD7;&#xFF0C;
&#x65E5;&#x5FD7;&#x6587;&#x4EF6;&#x6309;&#x65E5;&#x671F;&#x8BB0;&#x5F55;&#xFF0C;&#x6BCF;&#x5929;&#x7684;&#x65E5;&#x5FD7;&#x4E0D;&#x518D;&#x62C6;&#x5206;
&#x4F8B;&#x5982;log-level-2013-12-21.log
&#x5176;&#x5B83;&#x7EA7;&#x522B;&#x7684;&#x65E5;&#x5FD7;&#x4E5F;&#x662F;&#x5982;&#x6B64;&#x3002;
2&#x3001;&#x6587;&#x4EF6;&#x8DEF;&#x5F84;
&#x7EDF;&#x4E00;&#x8F93;&#x51FA;&#x5230;/home/logs
3&#x3001;Appender
FILEERROR&#x5BF9;&#x5E94;error&#x7EA7;&#x522B;&#xFF0C;&#x6587;&#x4EF6;&#x540D;&#x4EE5;{log.context.name}_xxx_error.log&#x5F62;&#x5F0F;&#x547D;&#x540D;
FILEWARN&#x5BF9;&#x5E94;warn&#x7EA7;&#x522B;&#xFF0C;&#x6587;&#x4EF6;&#x540D;&#x4EE5;{log.context.name}_xxx_error.log&#x5F62;&#x5F0F;&#x547D;&#x540D;
FILEINFO&#x5BF9;&#x5E94;info&#x7EA7;&#x522B;&#xFF0C;&#x6587;&#x4EF6;&#x540D;&#x4EE5;{log.context.name}_xxx_error.log&#x5F62;&#x5F0F;&#x547D;&#x540D;
FILEDEBUG&#x5BF9;&#x5E94;debug&#x7EA7;&#x522B;&#xFF0C;&#x6587;&#x4EF6;&#x540D;&#x4EE5;{log.context.name}_xxx_error.log&#x5F62;&#x5F0F;&#x547D;&#x540D;
&#x9ED8;&#x8BA4;&#x8F93;&#x51FA;&#x7EA7;&#x522B;&#x4E3A;debug&#xFF0C;&#x4E0D;&#x660E;&#x786E;&#x6307;&#x5B9A;&#x60C5;&#x51B5;&#x4E0B;&#x6587;&#x4EF6;&#x540D;&#x4EE5;{log.context.name}.log&#x5F62;&#x5F0F;&#x547D;&#x540D;
stdout&#x5C06;&#x65E5;&#x5FD7;&#x4FE1;&#x606F;&#x8F93;&#x51FA;&#x5230;&#x63A7;&#x5236;&#x4E0A;&#xFF0C;&#x4E3A;&#x65B9;&#x4FBF;&#x5F00;&#x53D1;&#x6D4B;&#x8BD5;&#x4F7F;&#x7528;
-->
< property name = "log.directory" value = "/home/logs/" />
< property name = "log.context.name" value = "shop-crm-service21" />
< property name = "log.charset" value = "UTF-8" />
< property name = "log.maxHistory" value = "30" />
< property name = "log.pattern" value = "%d{yyyy-MM-dd HH:mm:ss.SSS}$$[%thread]$$%-5level{}$$shop-crm-service$$%msg%n" />
< property name = "log.error.log.level" value = "ERROR" />
< property name = "log.async.queue.size" value = "1024" />
< contextName >${log.context.name}<!--</code--><code class="xml keyword">contextName</code><code class="xml plain">></code>
< springProfile name = "local" >
< appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender" >
< encoder >
< pattern >%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}) - %yellow([%file:%line]) - %msg%n<!--</code--><code class="xml keyword">pattern</code><code class="xml plain">></code>
< charset >${log.charset}<!--</code--><code class="xml keyword">charset</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">encoder</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">appender</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">springProfile</code><code class="xml plain">></code>
< springProfile name = "mu,dohko,pre,production" >
< appender name = "ROLLING_FILE_DEFAULT" class = "ch.qos.logback.core.rolling.RollingFileAppender" >
< file >${log.directory}${log.context.name}/${HOSTNAME}-%d{yyyyMMdd}.log<!--</code--><code class="xml keyword">file</code><code class="xml plain">></code>
< append >true<!--</code--><code class="xml keyword">append</code><code class="xml plain">></code>
< rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
< fileNamePattern >${log.directory}${log.context.name}/${HOSTNAME}.%d{yyyy-MM-dd}.%i.log<!--</code--><code class="xml keyword">fileNamePattern</code><code class="xml plain">></code>
< maxHistory >${log.maxHistory}<!--</code--><code class="xml keyword">maxHistory</code><code class="xml plain">></code>
< totalSizeCap >30gb<!--</code--><code class="xml keyword">totalSizeCap</code><code class="xml plain">></code>
< timeBasedFileNamingAndTriggeringPolicy class = "ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
< maxFileSize >2gb<!--</code--><code class="xml keyword">maxFileSize</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">timeBasedFileNamingAndTriggeringPolicy</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">rollingPolicy</code><code class="xml plain">></code>
< encoder >
< pattern >${log.pattern}<!--</code--><code class="xml keyword">pattern</code><code class="xml plain">></code>
< charset >${log.charset}<!--</code--><code class="xml keyword">charset</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">encoder</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">appender</code><code class="xml plain">></code>
< appender name = "ROLLING_FILE_ERROR" class = "ch.qos.logback.core.rolling.RollingFileAppender" >
< filter class = "ch.qos.logback.classic.filter.LevelFilter" >
< level >${log.error.log.level}<!--</code--><code class="xml keyword">level</code><code class="xml plain">></code>
< onMatch >ACCEPT<!--</code--><code class="xml keyword">onMatch</code><code class="xml plain">></code>
< onMismatch >DENY<!--</code--><code class="xml keyword">onMismatch</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">filter</code><code class="xml plain">></code>
< file >${log.directory}${log.context.name}/${HOSTNAME}_error-%d{yyyyMMdd}.log<!--</code--><code class="xml keyword">file</code><code class="xml plain">></code>
< append >true<!--</code--><code class="xml keyword">append</code><code class="xml plain">></code>
< rollingPolicy class = "ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
< fileNamePattern >${log.directory}${log.context.name}/${HOSTNAME}_error.%d{yyyy-MM-dd}.log<!--</code--><code class="xml keyword">fileNamePattern</code><code class="xml plain">></code>
< maxHistory >${log.maxHistory}<!--</code--><code class="xml keyword">maxHistory</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">rollingPolicy</code><code class="xml plain">></code>
< encoder >
< pattern >${log.pattern}<!--</code--><code class="xml keyword">pattern</code><code class="xml plain">></code>
< charset >${log.charset}<!--</code--><code class="xml keyword">charset</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">encoder</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">appender</code><code class="xml plain">></code>
< appender name = "ASYNC_FILE" class =&#xA0; "ch.qos.logback.classic.AsyncAppender" >
< discardingThreshold >0<!--</code--><code class="xml keyword">discardingThreshold</code><code class="xml plain">></code>
< queueSize >${log.async.queue.size}<!--</code--><code class="xml keyword">queueSize</code><code class="xml plain">></code>
< appender-ref ref =&#xA0; "ROLLING_FILE_DEFAULT" />
<!--</code--><code class="xml keyword">appender</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">springProfile</code><code class="xml plain">></code>
< logger name =&#xA0; "org.springframework.amqp.rabbit.listener.BlockingQueueConsumer" level = "WARN" />
< logger name =&#xA0; "org.apache.zookeeper.ClientCnxn" level = "WARN" />
< logger name =&#xA0; "com.hualala.commons.multidatasource.curator.CuratorClient" level = "WARN" />
< logger name =&#xA0; "com.hualala.commons.multidatasource.datasource.DynamicDataSource" level = "WARN" />
< logger name =&#xA0; "com.hualala.infrastructure.falcon.FalconMonitor" level = "WARN" />
< logger name = "jdbc.sqltiming" level = "debug" />
< 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" />
< logger name = "java.sql.ResultSet" level = "debug" />
< logger name = "org.springframework" level = "WARN" />
< logger name = "com.hualala" level = "debug" additivity = "false" >
< springProfile name = "local" >
< appender-ref ref = "STDOUT" />
<!--</code--><code class="xml keyword">springProfile</code><code class="xml plain">></code>
< springProfile name = "mu,dohko,pre" >
< appender-ref ref = "ASYNC_FILE" />
< appender-ref ref = "ROLLING_FILE_ERROR" />
<!--</code--><code class="xml keyword">springProfile</code><code class="xml plain">></code>
< springProfile name = "production" >
< appender-ref ref = "ASYNC_FILE" />
< appender-ref ref = "ROLLING_FILE_ERROR" />
<!--</code--><code class="xml keyword">springProfile</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">logger</code><code class="xml plain">></code>
< root >
< springProfile name = "local" >
< level value = "info" />
< appender-ref ref = "STDOUT" />
<!--</code--><code class="xml keyword">springProfile</code><code class="xml plain">></code>
< springProfile name = "mu,dohko,pre" >
< level value = "info" />
< appender-ref ref = "ASYNC_FILE" />
< appender-ref ref = "ROLLING_FILE_ERROR" />
<!--</code--><code class="xml keyword">springProfile</code><code class="xml plain">></code>
< springProfile name = "pre" >
< level value = "warn" />
< appender-ref ref = "ASYNC_FILE" />
< appender-ref ref = "ROLLING_FILE_ERROR" />
<!--</code--><code class="xml keyword">springProfile</code><code class="xml plain">></code>
< springProfile name = "production" >
< level value = "info" />
< appender-ref ref = "ASYNC_FILE" />
< appender-ref ref = "ROLLING_FILE_ERROR" />
<!--</code--><code class="xml keyword">springProfile</code><code class="xml plain">></code>
<!--</code--><code class="xml keyword">root</code><code class="xml plain">></code>

<!--</code--><code class="xml keyword">configuration</code><code class="xml plain">></code>

Original: https://www.cnblogs.com/duyinqiang/p/15903938.html
Author: 雄狮_杜
Title: springboot+logback日志规范

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541015/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • CentOS7安装Git

    参考资料 下载地址 步骤 1.下载包 2.git-2.9.5.tar.gz 和 git-manpages-2.9.5.tar.gz上传服务器 3.解压并编译 参考资料 官网 Git…

    Java 2023年6月9日
    083
  • JAVA PDF 截取N页,生成新文件,转图片

    JAVA PDF 截取N页,生成新文件,转图片 import com.itextpdf.text.Document; import com.itextpdf.text.pdf.Pd…

    Java 2023年6月13日
    080
  • SpringCloud + MyBatis Plus + Druid + dynamic-datasource 多数据源配置

    SpringCloud:Greenwich.SR2 Spring-boot : 2.1.7.RELEASE Spring:5.1.9.RELEASE 如果没有设置上文红色部分配置,…

    Java 2023年5月30日
    066
  • Java8Stream流

    Stream流呢,以前我也有所了解,像一些面试题中也出现过,Java8的新特性,有一块就是这个Stream操作集合,而且在看一些项目中也使用的比较多。但总感觉自己学的一知半解,所以…

    Java 2023年6月15日
    075
  • leetcode1. 两数之和

    题目描述 给定一个整数数组nums和一个整数目标值 target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。…

    Java 2023年6月9日
    066
  • SSH远程登录

    1、首先我们得清楚,客户端、服务端两端都是通信端。都有【公钥、私钥】 2、公钥 public key,就是大家都是可以获得的,但是有一个特点就是:该公钥加密的内容,只有我的私钥能解…

    Java 2023年6月7日
    064
  • 进程与线程的区别:最浅显易懂的解释

    作者丨阮一峰 http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 进程(process)和线程(th…

    Java 2023年5月30日
    068
  • SpringBoot接入两套kafka集群

    引入依赖 compile ‘org.springframework.kafka:spring-kafka’ 第一套kafka配置 package myapp.kafka; impo…

    Java 2023年6月6日
    070
  • windows下nginx安装、配置与使用

    目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。新近发现Nginx 技术在国内日趋火热,越来越多的网…

    Java 2023年5月30日
    058
  • org.springframework.web.client.HttpClientErrorException: 429 Too Many Requests

    用户在在指定的时间里发送了太多的请求。用于限制速率。属于客户端异常,既客户端没有遵守服务端给定的一定频率内的限制访问次数。 一般而言,当服务端检测到客户端在短时间内频繁的尝试访问特…

    Java 2023年5月30日
    0105
  • 【一】pig4cloud项目一键build — 容器中安装build环境

    容器基础配置 1、安装centos 容器 docker-compose.yaml 文件内容,指定一个映射目录 version: ‘3’ services: centos-build…

    Java 2023年6月8日
    094
  • Java中对域和静态方法的访问不具有多态性

    1.将方法调用同方法主体关联起来被称为 2.编译期绑定(静态)是在程序编译阶段就确定了引用对象的类型 3.运行期绑定(动态绑定)是指在执行期间判断所引用对象的实际类型,根据其实际的…

    Java 2023年6月16日
    075
  • JavaWeb过滤器Filter(附tomcat部分源码分析)

    过滤器Filter 过滤器通常对一些web资源进行拦截,做完一些处理器再交给下一个过滤器处理,直到所有的过滤器处理器,再调用servlet实例的service方法进行处理。过滤器可…

    Java 2023年6月9日
    075
  • JAVA面向对象的三大特性

    封装、继承、多态 ① 封装:隐藏对象的属性和细节,仅提供对外访问的接口。 ② 继承:从已有的类中派生出新的类, 新的类能吸收已有类的属性和方法,并能扩展新的属性和方法,也可对已有类…

    Java 2023年6月8日
    098
  • 蜻蜓点水说说Redis的ziplist的奥秘

    本篇博客参考: Redis 深度历险:核心原理与应用实践 Redis内部数据结构详解(4)——ziplist Redis的压缩列表ZipList 上篇博客中,我给大家蜻蜓点水般的介…

    Java 2023年6月5日
    094
  • 教学日志:javaSE-面向对象2

    一、局部变量和成员变量 package class4.oop1; /** * @Auther: Yu Panpan * @Date: 2021/12/10 – 12 – 10 – …

    Java 2023年6月5日
    0100
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球