<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<conversionRule conversionWord="logger" converterClass="com.lee.LoggingConverter" />
<property scope="context" name="varName" value="varValue" />

<if condition='!isDefined("DEV")'>
<!-- local dev env -->
<then>
<appender name="CON" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d %-5level %logger{80} - %msg %n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- <prudent>true</prudent> -->
<file>\${user.home}/logs/hk_retail_out.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>\${user.home}/logs/hk_retail_out.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>2MB</maxFileSize> 
</triggeringPolicy>
<encoder>
<pattern>%date [%X{flow}] %-5level %X{ip} %logger{80} - %msg%n</pattern>
</encoder>
</appender>
<appender name="PERFORMANCE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>\${user.home}/logs/hk_retail_perform.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>\${user.home}/logs/hk_retail_perform.log.%i.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>1</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>1MB</maxFileSize> 
</triggeringPolicy>
<encoder>
<pattern>%date [%X{flow}] %-5level %X{ip} %logger{80} - %msg%n</pattern>
</encoder>
</appender>
<appender name="METHOD" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>\${user.home}/logs/hk_retail_method.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>\${user.home}/logs/hk_retail_method.log.%i.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>1</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>1MB</maxFileSize> 
</triggeringPolicy>
<encoder>
<!-- <pattern>%date [%X{flow}] %-5level %X{ip} %X{method} - %msg%n</pattern> -->
<pattern>%date [%X{flow}] %-5level %X{ip} %logger{80} - %msg%n</pattern>
</encoder>
</appender>
<appender name="SQL" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>\${user.home}/logs/hk_retail_sql.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>\${user.home}/logs/hk_retail_sql.log.%i.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>1</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>1MB</maxFileSize> 
</triggeringPolicy>
<encoder>
<!-- <pattern>%date [%X{flow}] %-5level %X{ip} %X{method} - %msg%n</pattern> -->
<pattern>%date [%X{flow}] %-5level %X{ip} %logger{80} - %msg%n</pattern>
</encoder>
</appender>
<logger name="org.lee" level="debug" />
<logger name="PerformanceCounter">
<appender-ref ref="PERFORMANCE"/>
</logger>
<logger name="MethodLogging" level="debug">
<appender-ref ref="METHOD"/>
</logger>
<logger name="org.lee.mapper" level="debug">
<appender-ref ref="SQL"/>
</logger>
<root level="info">
<appender-ref ref="CON" />
<appender-ref ref="FILE" />
</root>
</then>
<else>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>\${user.dir}/logs/server1/hk_retail_out.%d{yyyy-MM-dd}${log.suffix}.log</fileNamePattern>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%X{flow}] %-5level %X{ip} %logger{80} - %msg%n</pattern>
</encoder>
</appender>

<appender name="PERFORMANCE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>\${user.dir}/logs/server1/hk_retail_perform.%d{yyyy-MM}${log.suffix}.log</fileNamePattern>
<maxHistory>6</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%X{flow}] %-5level %X{ip} %logger{80} - %msg%n</pattern>
</encoder>
</appender>

<appender name="METHOD" class="ch.qos.logback.core.rolling.RollingFileAppender">
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>\${user.dir}/logs/server1/hk_retail_method.%d{yyyy-MM}${log.suffix}.log</fileNamePattern>
<maxHistory>6</maxHistory>
</rollingPolicy>
<encoder>
<!-- <pattern>%date [%X{flow}] %-5level %X{ip} %X{method} - %msg%n</pattern> -->
<pattern>%date [%X{flow}] %-5level %X{ip} %logger{80} - %msg%n</pattern>
</encoder>
</appender>

<appender name="SQL" class="ch.qos.logback.core.rolling.RollingFileAppender">
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>\${user.dir}/logs/server1/hk_retail_sql.%d{yyyy-MM}${log.suffix}.log</fileNamePattern>
<maxHistory>6</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date [%X{flow}] %-5level %X{ip} %logger{80} - %msg%n</pattern>
</encoder>
</appender>

<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<prudent>true</prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>\${user.dir}/logs/server1/hk_retail_error.%d{yyyy-MM-dd}${log.suffix}.log</fileNamePattern>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%date %-4relative [%X{flow}] %-5level %X{ip} %logger{80} - %msg%n</pattern>
</encoder>
</appender>
<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<smtpHost>mailhost.jp.fid-intl.com</smtpHost>
<to>xxx@xxx.com</to>
<from>xxx@xxx.com</from>
<subject>[${API_ENV}][%-5level][HK-API${log.mail.subject.suffix}] %logger{80}</subject>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%date %-5level %logger{80}.%M - %message%n</pattern>
</layout>
</appender>

<logger name="com.lee" level="debug" />

<logger name="PerformanceCounter" additivity="false">
<appender-ref ref="PERFORMANCE"/>
</logger>

<logger name="MethodLogging">
<appender-ref ref="METHOD"/>
</logger>

<logger name="com.lee.mapper" additivity="false">
<appender-ref ref="SQL"/>
</logger>

<root level="info">
<appender-ref ref="FILE" />
<appender-ref ref="EMAIL" />
<appender-ref ref="ERROR" />
</root>
</else>
</if>

</configuration>

public class LoggingConverter extends LoggerConverter {
protected String getFullyQualifiedName(ILoggingEvent event) {
String loggerText = MDC.get("method");

return ((StringUtils.isBlank(loggerText)) ? super
.getFullyQualifiedName(event) : loggerText);
}
}

Logback 配置文件例子相关推荐

  1. java abs前缀变量_JAVA工具例大全--cn.hutool.setting.AbsSetting读取配置文件例子

    用类cn.hutool.setting.AbsSetting的如下方法:getChar public Character getChar(String key, String group) 获取cha ...

  2. logback配置文件详解

    logback配置文件详解 <?xml version="1.0" encoding="UTF-8"?> <!-- 根节点 , logback ...

  3. Log4j配置文件例子

    Log4j配置文件例子: # Define somedefault values that can be overridden by system properties hbase.root.logg ...

  4. 小记,springboot项目中自己常用的logback配置文件

    把配置文件放到resources这个classpath目录即可生效,日志输入样式是从springboot中日志配置中copy过来的, 其他常用配置不做过多注释了. logback-spring.xml ...

  5. Logback 配置文件这样优化,TPS提高 10 倍

    欢迎关注方志朋的博客,回复"666"获面试宝典 01.通过阅读本篇文章将了解到 1.日志输出到文件并根据LEVEL级别将日志分类保存到不同文件 2.通过异步输出日志减少磁盘IO提高 ...

  6. Logback配置文件这么写,TPS提高10倍

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 作者:何甜甜在吗 juejin.im/post/5d4d61326fb9a06aff5e5ff ...

  7. Logback 配置文件这么写,日志 TPS 提高 10 倍

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 何甜甜在吗 来源 | juejin.im/post/5d4d61326fb9a06 ...

  8. Logback 配置文件这么写,TPS 提高 10 倍!

    作者:何甜甜在吗 链接:juejin.im/post/5d4d61326fb9a06aff5e5ff5 通过阅读本篇文章将了解到: 1.日志输出到文件并根据LEVEL级别将日志分类保存到不同文件 2. ...

  9. logback 配置文件编写

    Logback 配置 本文讲logback的xml文件的配置,其中主要是在介绍各类appender. logback 的简单例子 xml文件大概结构 导图链接 xml <?xml version ...

最新文章

  1. java自定义标签 map_基于Spring MVC的自定义标签Tag
  2. C语言学习之利用指针将字符串a复制为字符串 b,然后输出字符串b
  3. golang基础归纳
  4. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第20篇]Merkle-Damgaard hash函数如何构造
  5. k均值例子 数据挖掘_【十大经典数据挖掘算法】k-means
  6. SSMS 2005 连接 SQL SERVER 2008问题
  7. VB实现人民币大小写金额转换
  8. mcgscom口针脚定义_COM口针脚定义
  9. 人工智能产生式系统动物识别实验python
  10. FPGA——按键消抖
  11. 普通二维码扫码进入小程序(详细教程——从配置到开发)
  12. 矩阵 向量 线性变换 基变换
  13. 计算机主机频率单位,计算机常见计量单位解析
  14. plink软件初体验3--计算样本杂合度和SNP位点杂合度
  15. 学生信息管理系统-数据结构课程设计
  16. 【解决方案】严防夏天溺水,开启EasyDSS+无人机的智能安防监控新时代
  17. 理论学习材料:如何解读小学数学教材
  18. TCP/IP参考模型-分层架构
  19. 电子化采购管理系统,竞争性谈判报价8个典型问题
  20. PTA 关于个人所得税(关于If else的运用)

热门文章

  1. 零基础学python爬虫-零基础学习python_爬虫(53课)
  2. python软件有多大-Python程序有多大?
  3. 学好python需要多久-python入门要学多久
  4. python学起来难不难-新手学python数据分析难不难?
  5. python入门代码示例-Python入门100个实例(14)——换行符和制表符
  6. python中可以用中文作为变量-Python中用中文变量名、函数名,会影响性能吗?
  7. python免费试听-线上儿童编程免费试听-品质保障
  8. 哪里可以找到python的免费教程-哪里有实用且免费的Python视频教程
  9. Zookeeper 源码环境搭建
  10. LeetCode Search in Rotated Sorted Array II