logback不一樣業務的日誌打印到不一樣文件

logback不一樣業務的日誌打印到不一樣文件

 版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/mggwct/article/details/77718122

在業務邏輯較爲多的系統中,爲了能快速的排查線上的問題和清楚的查詢各個業務的日誌信息,每每須要對不一樣業務線的日誌進行分開記錄: 
好比如今系統中有對小金庫用戶發放獎勵和白條用戶進行發放獎勵。java

logback.xml配置文件以下:spring

<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="SYS_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${catalina.base}/program/info.log</File> <append>true</append> <!--過濾器,只打INFO級別的日誌--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${catalina.base}/program/info.log.%d</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="SYS_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${catalina.base}/program/error.log</File> <append>true</append> <!--過濾器,只打ERROR級別的日誌--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${catalina.base}/program/error.log.%d</fileNamePattern> <maxHistory>12</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <!--不一樣業務邏輯的日誌打印到不一樣文件--> <appender name="baitiaoUserAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${catalina.base}/program/bt.log</File> <append>true</append> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${catalina.base}/program/bt.log.%d</fileNamePattern> <maxHistory>12</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="xjkUserAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <File>${catalina.base}/program/xjk.log</File> <append>true</append> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${catalina.base}/program/xjk.log.%d</fileNamePattern> <maxHistory>12</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <!-- 不一樣的業務邏輯日誌打印到指定文件夾--> <logger name="baitiaoUser" additivity="false" level="INFO"> <appender-ref ref="baitiaoUserAppender"/> </logger> <logger name="xjkUser" additivity="false" level="INFO"> <appender-ref ref="xjkUserAppender"/> </logger> <logger name="com.act.award" level="INFO"/> <logger name="com.act.award" level="DEBUG"/> <!--info和error分開打印--> <root level="INFO"> <appender-ref ref="CONSOLE"/> <appender-ref ref="SYS_INFO"/> <appender-ref ref="SYS_ERROR"/> </root> </configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106

代碼:markdown

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:/spring/application.xml") public class MainTest { Logger XJK_USER_LOG = LoggerUtils.Logger(LogFileName.XJK_USER); Logger BAITIAO_USER_LOG = LoggerUtils.Logger(LogFileName.BAITIAO_USER); @Test public void testGetBusinessAccount() throws Exception { XJK_USER_LOG.info("小金庫用戶進來了..."); BAITIAO_USER_LOG.info("白條用戶進來了..."); } } public enum LogFileName { //配置到logback.xml中的logger name="vipUser" XJK_USER("xjkUser"), BAITIAO_USER("baitiaoUser"); private String logFileName; LogFileName(String fileName) { this.logFileName = fileName; } public String getLogFileName() { return logFileName; } public void setLogFileName(String logFileName) { this.logFileName = logFileName; } public static LogFileName getAwardTypeEnum(String value) { LogFileName[] arr = values(); for (LogFileName item : arr) { if (null != item && StringUtils.isNotBlank(item.logFileName)) { return item; } } return null; } } public class LoggerUtils { public static <T> Logger Logger(Class<T> clazz) { return LoggerFactory.getLogger(clazz); } /** * 打印到指定的文件下 * * @param desc 日誌文件名稱 * @return */ public static Logger Logger(LogFileName desc) { return LoggerFactory.getLogger(desc.getLogFileName()); } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

日誌文件形式:app

Paste_Image.png 
bt.log內容: 
INFO [main] MainTest.java:23 - 白條用戶進來了… 
xjk.log內容: 
INFO [main] MainTest.java:22 - 小金庫用戶進來了…post

相關文章
相關標籤/搜索