springboot 2.0 통합 로그 백 로그

68629 단어 개발 노트Spring
springboot 2.0 통합 로그 백 로그
글 목록
  • springboot 2.0 통합 로그 백 로그
  • 1. logback - spring. xml 파일
  • 2. logback 비동기 로그 설정
  • 3. logback-spring.xml - 2

  • 1. logback - spring. xml 파일
        
        
        
        
        <configuration scan="true" scanPeriod="10 seconds">
        
            <contextName>logbackcontextName>
        
            
            <property name="logging.path" value="C:/log" />
            <property name="logging.file.prev" value="aal-" />
            <property name="max.file.size" value="1KB" />
            <property name="max.file.history" value="30" />
            <property name="charset" value="UTF-8" />
        
        
        
            
            
            
            <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
                <encoder>
                    <pattern>%d %p (%file: %line\)- %m%npattern>
                    
                    <charset>${charset}charset>
                encoder>
            appender>
        
        
            
        	
            <appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <File>${logging.path}/${logging.file.prev}debug.logFile>
                
                
                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                    
                    
                    <fileNamePattern>${logging.path}/%d{yyyy-MM-dd}/${logging.file.prev}debug_%i.logfileNamePattern>
                    
                    <maxHistory>${max.file.history}maxHistory>
                    <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                        
                        <maxFileSize>${max.file.size}maxFileSize>
                    timeBasedFileNamingAndTriggeringPolicy>
                rollingPolicy>
                <encoder>
                    
                    
                    
                    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%npattern>
                    
        
                    
                    <charset>${charset}charset>
                encoder>
                
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                    <level>DEBUGlevel>
                    <onMatch>ACCEPTonMatch>
                    <onMismatch>DENYonMismatch>
                filter>
            appender>
        
        
            
            <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <File>${logging.path}/${logging.file.prev}info.logFile>
                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                    <fileNamePattern>${logging.path}/%d{yyyy-MM-dd}/${logging.file.prev}info_%i.logfileNamePattern>
                    <maxHistory>${max.file.history}maxHistory>
                    <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                        <maxFileSize>${max.file.size}maxFileSize>
                    timeBasedFileNamingAndTriggeringPolicy>
                rollingPolicy>
                <encoder>
                    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%npattern>
                    <charset>${charset}charset>
                encoder>
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                    <level>INFOlevel>
                    <onMatch>ACCEPTonMatch>
                    <onMismatch>DENYonMismatch>
                filter>
            appender>
        
        
            
            <appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <File>${logging.path}/${logging.file.prev}warn.logFile>
                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                    <fileNamePattern>${logging.path}/%d{yyyy-MM-dd}/${logging.file.prev}warn_%i.logfileNamePattern>
                    <maxHistory>${max.file.history}maxHistory>
                    <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                        <maxFileSize>${max.file.size}maxFileSize>
                    timeBasedFileNamingAndTriggeringPolicy>
                rollingPolicy>
                <encoder>
                	
                    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%npattern>
                    <charset>${charset}charset>
                encoder>
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                    <level>WARNlevel>
                    <onMatch>ACCEPTonMatch>
                    <onMismatch>DENYonMismatch>
                filter>
            appender>
        
        
            
            <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <File>${logging.path}/${logging.file.prev}error.logFile>
                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                    <fileNamePattern>${logging.path}/%d{yyyy-MM-dd}/${logging.file.prev}error%i.logfileNamePattern>
                    <maxHistory>${max.file.history}maxHistory>
                    <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                        <maxFileSize>${max.file.size}maxFileSize>
                    timeBasedFileNamingAndTriggeringPolicy>
                rollingPolicy>
                <encoder>
                    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%npattern>
                    <charset>${charset}charset>
                encoder>
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                    <level>ERRORlevel>
                    <onMatch>ACCEPTonMatch>
                    <onMismatch>DENYonMismatch>
                filter>
            appender>
        
        
        
        
            
            <root level="info">
                <appender-ref ref="CONSOLE" />
                <appender-ref ref="FILE_DEBUG" />
                <appender-ref ref="FILE_INFO" />
                <appender-ref ref="FILE_WARN" />
                <appender-ref ref="FILE_ERROR" />
            root>
        
            
            <springProfile name="prod">
                <logger name="com.answer.aal" level="error"/>
            springProfile>
        
            
            <springProfile name="dev">
                <root level="info">
                    <appender-ref ref="CONSOLE"/>
                    <appender-ref ref="FILE_DEBUG"/>
                    <appender-ref ref="FILE_INFO"/>
                    <appender-ref ref="FILE_WARN"/>
                    <appender-ref ref="FILE_ERROR"/>
                root>
            springProfile>
        
        configuration>
    

     
    2. logback 비동기 로그 설정
    
        <configuration debug="true" scan="true" scanPeriod="30 seconds">
        
            <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
                <encoder>
                    <pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] - %m%npattern>
                encoder>
            appender>
        
            <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                    <FileNamePattern>c:/log/info-%d{yyyyMMdd}_%i.logFileNamePattern>
                    <MaxHistory>180MaxHistory>
                    <timeBasedFileNamingAndTriggeringPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                        <maxFileSize>1KBmaxFileSize>
                    timeBasedFileNamingAndTriggeringPolicy>
                rollingPolicy>
                <encoder>
                    
                    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}[%line] - %msg%npattern>
                    <charset>UTF-8charset>
                encoder>
                
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                    <level>INFOlevel>
                    <onMatch>ACCEPTonMatch>
                    <onMismatch>DENYonMismatch>
                filter>
            appender>
        
            
            <appender name="ASYNC_LOG" class="ch.qos.logback.classic.AsyncAppender">
                <discardingThreshold>0discardingThreshold>
                <queueSize>10queueSize>
                <appender-ref ref="FILE_INFO"/>
            appender>
        
            
            <root level="info">
                <appender-ref ref="ASYNC_LOG"/>
                <appender-ref ref="CONSOLE"/>
                <appender-ref ref="FILE_INFO"/>
            root>
        configuration>
    

     
    3. logback-spring.xml - 2
    
    <configuration>
    
        <property name="LOGS" value="./logs" />
    	
    	
        <springProperty scope="context" name="active" source="spring.profiles.active" />
        <springProperty scope="context" name="appName" source="spring.application.name" />
    
        <contextName>${appName}contextName>
    
        
        <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
        <conversionRule conversionWord="wex"
                        converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
        <conversionRule conversionWord="wEx"
                        converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
        
        <property name="CONSOLE_LOG_PATTERN"
                  value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr([${HOSTNAME}]) %clr([${appName}]) %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(--){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint}[%line] %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
        
        <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                
                
                <pattern>${CONSOLE_LOG_PATTERN}pattern>
                <charset>utf8charset>
            encoder>
        appender>
    
        <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    
            <file>${LOGS}/${appName}.logfile>
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <Pattern>%d ${HOSTNAME} [${appName}] %p %C{1.} [%t] %m%nPattern>
                <charset>${charset}charset>
            encoder>
    
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <fileNamePattern>${LOGS}/archived/${appName}-%d{yyyy-MM-dd}.%i.logfileNamePattern>
                <maxFileSize>10MBmaxFileSize>
                <totalSizeCap>10GBtotalSizeCap>
                <maxHistory>31maxHistory>
            rollingPolicy>
    
        appender>
    
        
        <root level="info">
            <appender-ref ref="RollingFile" />
            <appender-ref ref="Console" />
        root>
    
        
        <logger name="com.answer.ai" level="debug" additivity="false">
            <appender-ref ref="RollingFile" />
            <appender-ref ref="Console" />
        logger>
    
    configuration>
    

    좋은 웹페이지 즐겨찾기