先加一个配置文件
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="true" scan="true"> <springProperty scope="context" name="LOG_LEVEL" source="logging.level.root"/> <springProperty scope="context" name="APPNAME" source="logging.name"/> <property name="LOG_HOME" value="/data/weblog/xdclass" /> <jmxConfigurator /> <appender name="error_file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/${APPNAME}/web_error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/${APPNAME}/web_error_%d{yyyy-MM-dd}_%i.log.zip </fileNamePattern> <maxHistory>7</maxHistory> <cleanHistoryOnStart>true</cleanHistoryOnStart> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <encoder> <charset>UTF-8</charset> <pattern>%date [%thread] [%file:%line] [%level %logger{0}] - %msg%n </pattern> </encoder> </appender> <appender name="warn_file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/${APPNAME}/web_warn.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/${APPNAME}/web_warn_%d{yyyy-MM-dd}_%i.log.zip </fileNamePattern> <maxHistory>7</maxHistory> <cleanHistoryOnStart>true</cleanHistoryOnStart> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>WARN</level> </filter> <encoder> <charset>UTF-8</charset> <pattern>%date [%thread] [%file:%line] [%level %logger{0}] - %msg%n </pattern> </encoder> </appender> <appender name="info_file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/${APPNAME}/web_info.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/${APPNAME}/web_info_%d{yyyy-MM-dd}_%i.log.zip </fileNamePattern> <maxHistory>7</maxHistory> <cleanHistoryOnStart>true</cleanHistoryOnStart> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>${LOG_LEVEL}</level> </filter> <encoder> <charset>UTF-8</charset> <pattern>%date [%thread] [%file:%line] [%level %logger{0}] - %msg%n </pattern> </encoder> </appender> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <charset>UTF-8</charset> <pattern>%date [%thread] [%level %logger{0}:%line] - %msg%n </pattern> </encoder> </appender> <!--异步输出--> <appender name="async_info_log" class="ch.qos.logback.classic.AsyncAppender"> <discardingThreshold>0</discardingThreshold> <queueSize>512</queueSize> <includeCallerData>true</includeCallerData> <appender-ref ref="info_file"/> </appender> <root level="${LOG_LEVEL}"> <appender-ref ref="async_info_log" /> <appender-ref ref="warn_file" /> <appender-ref ref="error_file" /> <appender-ref ref="STDOUT" /> </root> </configuration>
简单使用
import com.xdclass.couponapp.service.CouponService; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Service public class UpdateCouponJob { private static final Logger logger = LoggerFactory.getLogger(UpdateCouponJob.class); @Resource private CouponService couponService; @Scheduled(cron = "0/5 * * * * ?") public void updateCoupon(){ System.out.println("enter update coupon job"); logger.info("enter update coupon job"); couponService.updateCouponMap(); } }
本文作者为DBC,转载请注明。