springcloud-微服务日志管理(logback-spring)

原来的日志在服务器上采用的是cronolog组件按天分割的日志,没什么大问题,因为本地也就控制台看下;到服务端才需要正在的日志文件来核查问题。但是介于spring本来自带不用,用第三方的插件太麻烦(测试嫌麻烦)。所以优化源代码采用logback-spring.xml的配置来打日志。

直接上代码:

对应pom

<dependency>
			<!-- logback condition 需要用到 -->
			<groupId>org.codehaus.janino</groupId>
			<artifactId>janino</artifactId>
</dependency>

对应根目录配置logback-spring.xml内容:

<configuration debug="true" scan="true" scanPeriod="30 minutes">
	<springProperty scope="context" name="logFileDir" source="logback.logFileDir"/>
	
	<!-- 当前日志存放路径(路径末尾不要带“/”),设置默认值 -->
	<property name="LOG_FILE_DIR" value="${logFileDir}/${appName}" />
	<property name="HIS_LOG_FILE_DIR" value="${logFileDir}/${appName}/history" />	
	<!-- 控制台输出 -->
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d{MM-dd HH:mm:ss.SSS}|%level|%logger{36}:%line|%thread|%msg%n</pattern>
		</encoder>
	</appender>
	<if condition='property("logFileDir") != null &amp;&amp; !property("logFileDir").isEmpty() &amp;&amp; !"bootstrap".equals(property("appName"))'>
		<then>
			<!-- 文件输出 -->
			<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
				<file>${LOG_FILE_DIR}/debug.log</file>
				<append>true</append>
				<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
					<fileNamePattern>${HIS_LOG_FILE_DIR}/%d{yyyy-MM/dd/HH}-debug.gz</fileNamePattern>
				</rollingPolicy>
				<encoder>
					<pattern>%d{MM-dd HH:mm:ss.SSS}|%level|%logger{36}:%line|%thread|%X{trackNo}|%msg%n</pattern>
				</encoder>
			</appender>
		</then>
	</if>


</configuration>

yml文件配置:

logback:
  #非开发环境是否开启控制台日志
  enableConsoleLogWhenNotInDev: false
  #**日志文件存放目录,目录后面无需再加"/"。备注如果这项不配置,则不输出日志文件
  logFileDir: /acc-Log

需要注意的就是文件路劲配置。

哦对了,日志打印基于:org.slf4j.LoggerFactory

//注意:启动类不应先加载Logger,优先让spring去初始化Logger的配置,否则日志输出会异常
LoggerFactory.getLogger(PayApplication.class);

基本一切正常日志按需输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值