欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > java实现日志按天打印

java实现日志按天打印

2025/9/16 3:34:14 来源:https://blog.csdn.net/weixin_44372802/article/details/143108126  浏览:    关键词:java实现日志按天打印

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- 应用名称:和统一配置中的项目代码保持一致(小写) --><property name="APP_NAME" value="mita-main"/><!--日志文件保留天数--><property name="LOG_MAX_HISTORY" value="15"/><!--应用日志文件保存路径--><property name="LOG_APP_HOME" value="/usr/local/logs/mita-log/${APP_NAME}"/><!-- 日志输出格式 --><property name="LOG_PATTERN"value="%d{yyyy-MM-dd HH:mm:ss.SSS} - [${APP_NAME}] -[%thread] - [%-5level] - [%logger{50}] - [%method,%line] - [%X{TRACE_ID}] - %msg%n"/><springProperty scope="context" name="appName" source="spring.application.names" defaultValue="mita-main"/><springProperty scope="context" name="infoLogPath" source="spring.application.names"defaultValue="${LOG_APP_HOME}/mita-info.%d{yyyy-MM-dd}.log"/><springProperty scope="context" name="errorLogPath" source="spring.application.names"defaultValue="${LOG_APP_HOME}/mita-error.%d{yyyy-MM-dd}.log"/><conversionRule conversionWord="stack"converterClass="net.logstash.logback.stacktrace.ShortenedThrowableConverter"/><!-- 控制台输出 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${LOG_PATTERN}</pattern></encoder></appender><!-- 系统日志输出 --><appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件名格式 --><FileNamePattern>${LOG_APP_HOME}/basedata-info.%d{yyyy-MM-dd}.log</FileNamePattern><!-- 日志最大的历史 60--><maxHistory>${LOG_MAX_HISTORY}</maxHistory></rollingPolicy><encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"><providers><timestamp><timeZone>Asia/Shanghai</timeZone></timestamp><pattern><pattern>{"time": "%d{yyyy-MM-dd HH:mm:ss.SSS}","appName": "${appName}","hostName": "${hostname}","level": "%level","thread": "%thread","requestId": "%X{TRACE_ID}","logger": "%logger","logPath":"${infoLogPath}","method": "%method","line": "%line","message": "%message"}</pattern></pattern></providers></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>INFO</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter></appender><appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件名格式 --><fileNamePattern>${LOG_APP_HOME}/basedata-error.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 日志最大的历史 60--><maxHistory>${LOG_MAX_HISTORY}</maxHistory></rollingPolicy><encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"><providers><timestamp><timeZone>Asia/Shanghai</timeZone></timestamp><pattern><pattern>{"time": "%d{yyyy-MM-dd HH:mm:ss.SSS}","appName": "${appName}","hostName": "${hostname}","level": "%level","thread": "%thread","requestId":"%X{TRACE_ID}","logger":"%logger","logPath":"${errorLogPath}","method":"%method","line": "%line","message": "%message","exception":"%stack"}</pattern></pattern></providers></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>ERROR</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter></appender><!--业务info日志--><appender name="business-info" class="ch.qos.logback.core.rolling.RollingFileAppender"><append>true</append><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_APP_HOME}/${hostname}/jp-basedata-info.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>12</maxHistory></rollingPolicy><encoder charset="UTF-8"><pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern><charset>UTF-8</charset></encoder><encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"><providers><timestamp><timeZone>Asia/Shanghai</timeZone></timestamp><pattern><pattern>{"time": "%d{yyyy-MM-dd HH:mm:ss.SSS}","level": "%level","appName": "${appName}","hostName": "${hostname}","thread": "%thread","requestId": "%X{TRACE_ID}","logPath":"${infoLogPath}","method": "%method","line": "%line","message": "%message"}</pattern></pattern></providers></encoder></appender><!--业务error日志--><appender name="business-error" class="ch.qos.logback.core.rolling.RollingFileAppender"><append>true</append><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"><fileNamePattern>${LOG_APP_HOME}/jp-basedata-error.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>12</maxHistory></rollingPolicy><encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"><providers><timestamp><timeZone>Asia/Shanghai</timeZone></timestamp><pattern><pattern>{"time": "%d{yyyy-MM-dd HH:mm:ss.SSS}","level": "%level","appName": "${appName}","hostName": "${hostname}","thread": "%thread","requestId":"%X{TRACE_ID}","logPath":"${errorLogPath}","method":"%method","line": "%line","message": "%message","exception":"%stack"}</pattern></pattern></providers></encoder></appender><!-- 系统模块日志级别控制  --><logger name="com.mita.mita" level="info"/><!-- Spring日志级别控制  --><logger name="org.springframework" level="warn"/><root level="info"><appender-ref ref="console"/></root><!--系统操作日志--><root level="info"><appender-ref ref="file_info"/><appender-ref ref="file_error"/></root><logger name="basedata-business" additivity="false" level="INFO"><appender-ref ref="business-info"/><appender-ref ref="business-error"/></logger>
</configuration>

> 详细解释

全局配置:

APP_NAME:应用名称。 LOG_MAX_HISTORY:日志文件保留天数。 LOG_APP_HOME:日志文件保存路径。
LOG_PATTERN:日志输出格式。

控制台输出:

配置了控制台日志输出格式,使用${LOG_PATTERN}。

系统日志输出:

INFO级别:配置了INFO级别的日志文件输出,包括日志文件名格式、最大历史天数和JSON格式的编码器。
ERROR级别:配置了ERROR级别的日志文件输出,包括日志文件名格式、最大历史天数和JSON格式的编码器。

业务日志输出:

INFO级别:配置了INFO级别的业务日志文件输出,包括日志文件名格式、最大历史天数和JSON格式的编码器。
ERROR级别:配置了ERROR级别的业务日志文件输出,包括日志文件名格式、最大历史天数和JSON格式的编码器。

日志级别控制:

配置了系统模块和Spring框架的日志级别。 配置了根日志级别为INFO,并指定了控制台和文件输出的appender。

业务日志:

配置了业务日志的独立输出,包括INFO和ERROR级别的日志文件输出。

以下就是按天打印的案例:

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词