This commit is contained in:
haerong22
2021-09-17 01:50:10 +09:00
8 changed files with 231 additions and 1 deletions

View File

@@ -0,0 +1,72 @@
[2021-09-16 16:28:58:15683][main] WARN o.s.boot.StartupInfoLogger - InetAddress.getLocalHost().getHostName() took 5003 milliseconds to respond. Please verify your network configuration (macOS machines may need to add entries to /etc/hosts).
[2021-09-16 16:29:03:20689][main] INFO com.example.log.LogApplication - Starting LogApplication using Java 1.8.0_281 on kim.local with PID 3856 (/Users/bobby/Desktop/kim/study/Study/blog/log/build/classes/java/main started by bobby in /Users/bobby/Desktop/kim/study/Study/blog/log)
[2021-09-16 16:29:03:20690][main] INFO com.example.log.LogApplication - The following profiles are active: common,local
[2021-09-16 16:29:04:21411][main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http)
[2021-09-16 16:29:04:21423][main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
[2021-09-16 16:29:04:21423][main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
[2021-09-16 16:29:04:21423][main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.52]
[2021-09-16 16:29:04:21501][main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
[2021-09-16 16:29:04:21501][main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 766 ms
[2021-09-16 16:29:04:21788][main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
[2021-09-16 16:29:04:21813][main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path ''
[2021-09-16 16:29:04:21823][main] INFO com.example.log.LogApplication - Started LogApplication in 21.645 seconds (JVM running for 27.165)
[2021-09-16 16:29:16:34231][http-nio-8080-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
[2021-09-16 16:29:16:34232][http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
[2021-09-16 16:29:16:34233][http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
[2021-09-16 16:29:16:34250][http-nio-8080-exec-1] ERROR c.e.log.controller.TestController - controller error log
[2021-09-16 16:29:16:34250][http-nio-8080-exec-1] WARN com.example.log.service.TestService - service warn log
[2021-09-16 16:29:16:34250][http-nio-8080-exec-1] ERROR com.example.log.service.TestService - service error log
[2021-09-16 16:52:43:15840][main] WARN o.s.boot.StartupInfoLogger - InetAddress.getLocalHost().getHostName() took 5003 milliseconds to respond. Please verify your network configuration (macOS machines may need to add entries to /etc/hosts).
[2021-09-16 16:52:48:20851][main] INFO com.example.log.LogApplication - Starting LogApplication using Java 1.8.0_281 on kim.local with PID 4068 (/Users/bobby/Desktop/kim/study/Study/blog/log/build/libs/log-0.0.1-SNAPSHOT.jar started by bobby in /Users/bobby/Desktop/kim/study/Study/blog/log)
[2021-09-16 16:52:48:20852][main] INFO com.example.log.LogApplication - The following profiles are active: common,dev
[2021-09-16 16:52:49:21841][main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http)
[2021-09-16 16:52:49:21854][main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
[2021-09-16 16:52:49:21855][main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
[2021-09-16 16:52:49:21855][main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.52]
[2021-09-16 16:52:49:21915][main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
[2021-09-16 16:52:49:21915][main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1003 ms
[2021-09-16 16:52:49:22260][main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
[2021-09-16 16:52:49:22285][main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path ''
[2021-09-16 16:52:49:22296][main] INFO com.example.log.LogApplication - Started LogApplication in 22.101 seconds (JVM running for 22.539)
[2021-09-16 16:54:15:107884][http-nio-8080-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
[2021-09-16 16:54:15:107886][http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
[2021-09-16 16:54:15:107889][http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 3 ms
[2021-09-16 16:54:15:108015][http-nio-8080-exec-1] ERROR c.e.log.controller.TestController - controller error log
[2021-09-16 16:54:15:108016][http-nio-8080-exec-1] WARN com.example.log.service.TestService - service warn log
[2021-09-16 16:54:15:108016][http-nio-8080-exec-1] ERROR com.example.log.service.TestService - service error log
[2021-09-16 16:55:12:15981][main] WARN o.s.boot.StartupInfoLogger - InetAddress.getLocalHost().getHostName() took 5004 milliseconds to respond. Please verify your network configuration (macOS machines may need to add entries to /etc/hosts).
[2021-09-16 16:55:17:20994][main] INFO com.example.log.LogApplication - Starting LogApplication using Java 1.8.0_281 on kim.local with PID 4166 (/Users/bobby/Desktop/kim/study/Study/blog/log/build/libs/log-0.0.1-SNAPSHOT.jar started by bobby in /Users/bobby/Desktop/kim/study/Study/blog/log)
[2021-09-16 16:55:17:20995][main] INFO com.example.log.LogApplication - The following profiles are active: common,dev
[2021-09-16 16:55:18:22066][main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http)
[2021-09-16 16:55:18:22081][main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
[2021-09-16 16:55:18:22082][main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
[2021-09-16 16:55:18:22082][main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.52]
[2021-09-16 16:55:18:22138][main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
[2021-09-16 16:55:18:22138][main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1079 ms
[2021-09-16 16:55:18:22521][main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
[2021-09-16 16:55:18:22555][main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path ''
[2021-09-16 16:55:18:22569][main] INFO com.example.log.LogApplication - Started LogApplication in 22.339 seconds (JVM running for 22.845)
[2021-09-16 16:55:48:52072][http-nio-8080-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
[2021-09-16 16:55:48:52073][http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
[2021-09-16 16:55:48:52074][http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
[2021-09-16 16:55:48:52159][http-nio-8080-exec-1] ERROR c.e.log.controller.TestController - controller error log
[2021-09-16 16:55:48:52160][http-nio-8080-exec-1] WARN com.example.log.service.TestService - service warn log
[2021-09-16 16:55:48:52160][http-nio-8080-exec-1] ERROR com.example.log.service.TestService - service error log
[2021-09-16 16:57:50:15830][main] WARN o.s.boot.StartupInfoLogger - InetAddress.getLocalHost().getHostName() took 5004 milliseconds to respond. Please verify your network configuration (macOS machines may need to add entries to /etc/hosts).
[2021-09-16 16:57:55:20842][main] INFO com.example.log.LogApplication - Starting LogApplication using Java 1.8.0_281 on kim.local with PID 4275 (/Users/bobby/Desktop/kim/study/Study/blog/log/build/libs/log-0.0.1-SNAPSHOT.jar started by bobby in /Users/bobby/Desktop/kim/study/Study/blog/log)
[2021-09-16 16:57:55:20843][main] INFO com.example.log.LogApplication - The following profiles are active: common,prod
[2021-09-16 16:57:56:21819][main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http)
[2021-09-16 16:57:56:21846][main] INFO o.a.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8080"]
[2021-09-16 16:57:56:21847][main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
[2021-09-16 16:57:56:21848][main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.52]
[2021-09-16 16:57:56:21921][main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
[2021-09-16 16:57:56:21921][main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1014 ms
[2021-09-16 16:57:57:22263][main] INFO o.a.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8080"]
[2021-09-16 16:57:57:22294][main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path ''
[2021-09-16 16:57:57:22308][main] INFO com.example.log.LogApplication - Started LogApplication in 22.12 seconds (JVM running for 22.553)
[2021-09-16 16:58:02:27842][http-nio-8080-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
[2021-09-16 16:58:02:27843][http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
[2021-09-16 16:58:02:27844][http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
[2021-09-16 16:58:02:27920][http-nio-8080-exec-1] ERROR c.e.log.controller.TestController - controller error log
[2021-09-16 16:58:02:27920][http-nio-8080-exec-1] WARN com.example.log.service.TestService - service warn log
[2021-09-16 16:58:02:27920][http-nio-8080-exec-1] ERROR com.example.log.service.TestService - service error log

View File

@@ -0,0 +1,8 @@
[2021-09-16 16:29:16:34250][http-nio-8080-exec-1] ERROR c.e.log.controller.TestController - controller error log
[2021-09-16 16:29:16:34250][http-nio-8080-exec-1] ERROR com.example.log.service.TestService - service error log
[2021-09-16 16:54:15:108015][http-nio-8080-exec-1] ERROR c.e.log.controller.TestController - controller error log
[2021-09-16 16:54:15:108016][http-nio-8080-exec-1] ERROR com.example.log.service.TestService - service error log
[2021-09-16 16:55:48:52159][http-nio-8080-exec-1] ERROR c.e.log.controller.TestController - controller error log
[2021-09-16 16:55:48:52160][http-nio-8080-exec-1] ERROR com.example.log.service.TestService - service error log
[2021-09-16 16:58:02:27920][http-nio-8080-exec-1] ERROR c.e.log.controller.TestController - controller error log
[2021-09-16 16:58:02:27920][http-nio-8080-exec-1] ERROR com.example.log.service.TestService - service error log

View File

@@ -0,0 +1,29 @@
package com.example.log.controller;
import com.example.log.service.TestService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@Autowired
TestService testService;
Logger log = LoggerFactory.getLogger(TestController.class);
@GetMapping("/log")
public String test() {
log.trace("controller trace log");
log.debug("controller debug log");
log.info("controller info log");
log.warn("controller warn log");
log.error("controller error log");
testService.test();
return "success";
}
}

View File

@@ -0,0 +1,19 @@
package com.example.log.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
@Service
public class TestService {
Logger log = LoggerFactory.getLogger(TestService.class);
public void test() {
log.trace("service trace log");
log.debug("service debug log");
log.info("service info log");
log.warn("service warn log");
log.error("service error log");
}
}

View File

@@ -0,0 +1,5 @@
webhook-uri: https://hooks.slack.com/services/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
channel: test_dev
username: dev TEST ERROR LOG
emoji: eyes

View File

@@ -0,0 +1,5 @@
webhook-uri: https://hooks.slack.com/services/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
channel: test_prod
username: prod TEST ERROR LOG
emoji: eyes

View File

@@ -1,2 +1,7 @@
common: common
test: common
logging.level:
root: info
com.example.log: info
com.example.log.controller: error
com.example.log.service: warn

View File

@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 로그 설정 -->
<property name="LOG_DIR" value="./logs"/>
<property name="LOG_PATH_NAME" value="${LOG_DIR}/data/"/>
<property name="ERROR_LOG_PATH_NAME" value="${LOG_DIR}/error/"/>
<property name="LOG_PATTERN_CONSOLE" value="%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %highlight([ %-5level]) | %cyan(%logger{35}) - %msg%n" />
<property name="LOG_PATTERN_FILE" value="[%d{yyyy-MM-dd HH:mm:ss}:%-3relative][%thread] %-5level %logger{35} - %msg%n" />
<property name="MAX_HISTORY" value="365" />
<!-- 콘솔 출력 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN_CONSOLE}</pattern>
</encoder>
</appender>
<!-- 파일로 저장-->
<appender name="DATA" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 일자별로 로그파일 적용하기 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH_NAME}data_%d{yyyyMMdd}.log</fileNamePattern>
<maxHistory>${MAX_HISTORY}</maxHistory> <!-- 일자별 백업파일의 보관기간 -->
</rollingPolicy>
<encoder>
<pattern>${LOG_PATTERN_FILE}</pattern>
</encoder>
</appender>
<!-- 에러의 경우는 별도 파일 저장 -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<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"> <!-- .gz,.zip 등을 넣으면 자동 일자별 로그파일 압축가능 -->
<fileNamePattern>${ERROR_LOG_PATH_NAME}error_%d{yyyyMMdd}.log</fileNamePattern>
<maxHistory>${MAX_HISTORY}</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${LOG_PATTERN_FILE}</pattern>
</encoder>
</appender>
<!-- profile 에 따라 slack 에 전송 -->
<springProfile name="dev, prod">
<property resource="slack-logback.yml" />
<appender name="SLACK_ERROR" class="com.github.maricn.logback.SlackAppender">
<webhookUri>${webhook-uri}</webhookUri>
<channel>#${channel}</channel>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${LOG_PATTERN_FILE}</pattern>
</layout>
<username>${username}</username>
<iconEmoji>:${emoji}:</iconEmoji>
<colorCoding>true</colorCoding>
</appender>
<appender name="ASYNC_SLACK_ERROR" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="SLACK_ERROR"/>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
</springProfile>
<!-- logger 설정 -->
<springProfile name="dev, prod">
<logger name="com.example.log" level="INFO" additivity="false">
<appender-ref ref="STDOUT"/>
<appender-ref ref="DATA"/>
</logger>
<logger name="com.example.log" level="ERROR" additivity="false">
<appender-ref ref="ERROR"/>
<appender-ref ref="ASYNC_SLACK_ERROR"/>
</logger>
</springProfile>
<!-- 위의 logger 에 해당하지 않으면 기본 설정 -->
<root level="INFO">
<appender-ref ref="DATA"/>
<appender-ref ref="STDOUT"/>
</root>
<root level="error">
<appender-ref ref="ERROR" />
</root>
</configuration>