Spring boot 日志问题
时间: 2016-09-27来源:开源中国
前景提要
HDC调试需求开发(15万预算),能者速来!>>>
一、logback配置文件如下 src/main/resources/config/log/logback-spring.xml <?xml version="1.0" encoding="UTF-8" ?> <!-- 日志组件启动时,打印调试信息,并监控此文件变化,周期120秒 --> <configuration scan="true" scanPeriod="120 seconds" debug="true"> <!-- 项目名称及日志目录定义 --> <property name="PROJECT_NAME" value="dragon"/> <property name="LOG_PATH" value="/var/log/webapps/${PROJECT_NAME}"/> <contextName>${CONTEXT_NAME}</contextName> <!-- include spring boot logback base configuration --> <!--<include resource="org/springframework/boot/logging/logback/base.xml"/>--> <!-- ===================================================================== --> <!-- 以下是appender的定义 --> <!-- ===================================================================== --> <!-- 记录到控制台,仅用于本地开发 --> <!-- TODO 本地开发环境只需要控制台输出,其他Appender仅作为测试logback配置,后期可删除其他appender --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH🇲🇲ss.SSS} %-5level [%15.15thread] %logger{36}:%L - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="INFO-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_PATH}/apps.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_PATH}/apps.log.%d{yyyy-MM-dd}.%i</FileNamePattern> <MaxHistory>30</MaxHistory> <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <MaxFileSize>1024MB</MaxFileSize> </TimeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> <layout class="ch.qos.logback.classic.PatternLayout"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH🇲🇲ss.SSS} %-5level [%thread] %logger{0}:%L- %msg%n</pattern> </layout> <charset>UTF-8</charset> </encoder> </appender> <appender name="WARN-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_PATH}/apps-warn-30dt.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_PATH}/apps-warn-30dt.log.%d{yyyy-MM-dd}.%i</FileNamePattern> <MaxHistory>30</MaxHistory> <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <MaxFileSize>1024MB</MaxFileSize> </TimeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> <layout class="ch.qos.logback.classic.PatternLayout"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH🇲🇲ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </layout> <charset>UTF-8</charset> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <appender name="ERROR-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_PATH}/apps-error-30dt.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <FileNamePattern>${LOG_PATH}/apps-error-30dt.log.%d{yyyy-MM-dd}.%i</FileNamePattern> <MaxHistory>30</MaxHistory> <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <MaxFileSize>1024MB</MaxFileSize> </TimeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> <layout class="ch.qos.logback.classic.PatternLayout"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH🇲🇲ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </layout> <charset>UTF-8</charset> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- ===================================================================== --> <!-- 以下是logger的定义 --> <!-- ===================================================================== --> <springProfile name="dev"> <logger name="com.mzw.dragon" additivity="true"> <level value="INFO"/> <appender-ref ref="STDOUT"/> </logger> <logger name="org.apache" additivity="true"> <level value="INFO"/> <appender-ref ref="STDOUT"/> </logger> <logger name="org.springframework" additivity="true"> <level value="INFO"/> <appender-ref ref="STDOUT"/> </logger> </springProfile> <springProfile name="online"> <logger name="com.mzw.dragon" additivity="true"> <level value="INFO"/> </logger> </springProfile> <!-- ===================================================================== --> <!-- Root logger的定义 --> <!-- ===================================================================== --> <root> <level value="INFO"/> <!--<appender-ref ref="STDOUT"/>--> <appender-ref ref="INFO-APPENDER"/> <appender-ref ref="WARN-APPENDER"/> <appender-ref ref="ERROR-APPENDER"/> </root> </configuration> 二、application配置文件spring.profiles.active=dev logging.config=classpath:config/log/logback-spring.xml #logging.path=/var/log/webapps/dragon #logging.level.root=INFO #logging.level.com.mzw.dragon=INFO #logging.level.org.apache=INFO #logging.level.root.springframework=INFO ############################### VELOCITY TEMPLATES (VelocityAutoConfiguration) spring.velocity.charset=UTF-8 spring.velocity.properties.input.encoding=UTF-8 spring.velocity.properties.output.encoding=UTF-8 spring.velocity.properties.parser.pool.size=100 spring.velocity.properties.velocimacro.library=/velocityTemplates/macros/macros.vm spring.velocity.properties.velocimacro.library.autoreload=false spring.velocity.cache=false spring.velocity.content-type=text/html;charset=UTF-8 spring.velocity.date-tool-attribute=date spring.velocity.number-tool-attribute=number spring.velocity.prefix=/velocityTemplates spring.velocity.suffix=.vm spring.velocity.resourceLoaderPath=classpath:/velocityTemplates spring.velocity.toolbox-config-location=/config/velocity/velocity-toolbox.xml spring.mvc.view.prefix=/velocityTemplates spring.mvc.view.suffix=.vm 三、启动类文件package com.mzw.dragon; import com.mzw.dragon.configuration.DragonConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; import org.springframework.boot.web.support.SpringBootServletInitializer; import org.springframework.context.annotation.Import; /** * Created by victor.min on 2016/9/9. */ @SpringBootApplication @Import({DragonConfiguration.class}) public class BootStrap extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer { private static Logger logger = LoggerFactory.getLogger(BootStrap.class); public static void main(String[] args) throws Exception { // System.setProperty("spring.profiles.active", "dev"); logger.info("--------------------------------------------"); logger.info("------------------application start--------------------------"); SpringApplication.run(BootStrap.class, args); logger.info("-------------------application end-------------------------"); logger.info("--------------------------------------------"); } @Override public void customize(ConfigurableEmbeddedServletContainer configurableEmbeddedServletContainer) { logger.info("--------------------------------------------"); logger.info("------------------customize start--------------------------"); configurableEmbeddedServletContainer.setPort(8088); logger.info("-------------------customize end-------------------------"); logger.info("--------------------------------------------"); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { logger.info("--------------------------------------------"); logger.info("------------------configure start--------------------------"); return builder.sources(BootStrap.class); } }
不论在IDEA 里面直接RUN还是使用maven spring-boot:run启动,日志都可以被正确的记录,但是当打成war包放到外部tomcat下时,日志就不能被记录了……
求大大们帮下忙呀~~
看了下面的两篇文章,好像那样也不行呀~~
http://www.cnblogs.com/zb38/p/5411701.html
http://www.cnblogs.com/puroc/p/5049222.html

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行