From 8c45b8f71bcc41512fe3fd9e7c2ebe5f5fec7f25 Mon Sep 17 00:00:00 2001 From: TanYibin <5491541@qq.com> Date: Wed, 1 Feb 2023 12:29:11 +0800 Subject: [PATCH] 动态指定logs目录为项目启动路径下logs目录 --- huaheng-wms-core/src/main/java/org/jeecg/utils/CustomLogContextListener.java | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ huaheng-wms-core/src/main/resources/logback-spring.xml | 31 ++++++++++++++++++------------- 2 files changed, 85 insertions(+), 13 deletions(-) create mode 100644 huaheng-wms-core/src/main/java/org/jeecg/utils/CustomLogContextListener.java diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/CustomLogContextListener.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/CustomLogContextListener.java new file mode 100644 index 0000000..46735d8 --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/CustomLogContextListener.java @@ -0,0 +1,67 @@ +package org.jeecg.utils; + +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.Logger; +import ch.qos.logback.classic.LoggerContext; +import ch.qos.logback.classic.spi.LoggerContextListener; +import ch.qos.logback.core.spi.ContextAwareBase; +import ch.qos.logback.core.spi.LifeCycle; +import ch.qos.logback.core.Context; + +/** + * @version 1.0 + * @class: CustomLogContextListener + * @author: carlo + * @mail: carlo_cwh@qq.com + * @date: 2021/8/25 10:01 + * @description: 定义logback 日志监听器,指定日志文件存放目录 + */ +public class CustomLogContextListener extends ContextAwareBase implements LoggerContextListener, LifeCycle { + + /** 存储日志路径标识 */ + public static final String LOG_PAHT_KEY = "LOG_PATH"; + + @Override + public boolean isResetResistant() { + return false; + } + + @Override + public void onStart(LoggerContext loggerContext) { + + } + + @Override + public void onReset(LoggerContext loggerContext) { + + } + + @Override + public void onStop(LoggerContext loggerContext) { + + } + + @Override + public void onLevelChange(Logger logger, Level level) { + + } + + @Override + public void start() { + // "user.dir"是指用户当前工作目录 + String s = System.getProperty("user.dir"); + System.setProperty(LOG_PAHT_KEY, s); + Context context = getContext(); + context.putProperty(LOG_PAHT_KEY, s); + } + + @Override + public void stop() { + + } + + @Override + public boolean isStarted() { + return false; + } +} \ No newline at end of file diff --git a/huaheng-wms-core/src/main/resources/logback-spring.xml b/huaheng-wms-core/src/main/resources/logback-spring.xml index 1a93234..428525f 100644 --- a/huaheng-wms-core/src/main/resources/logback-spring.xml +++ b/huaheng-wms-core/src/main/resources/logback-spring.xml @@ -1,14 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> + + <!-- 监听器,指定日志文件存放目录 --> + <contextListener class="org.jeecg.utils.CustomLogContextListener" /> + <!--定义日志文件的存储地址 --> - <property name="LOG_HOME" value="../logs"/> + <property name="LOG_HOME" value="${LOG_PATH}/logs" /> - <!--<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" />--> + <!--<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( + %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" /> --> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> - <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>--> + <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L + - %msg%n</pattern> --> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n</pattern> </encoder> </appender> @@ -31,7 +36,7 @@ <!-- 生成 error html格式日志开始 --> <appender name="HTML" class="ch.qos.logback.core.FileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <!--设置日志级别,过滤掉info日志,只输入error日志--> + <!--设置日志级别,过滤掉info日志,只输入error日志 --> <level>ERROR</level> </filter> <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> @@ -61,17 +66,17 @@ <!-- 每天生成一个html格式的日志结束 --> <!--myibatis log configure --> - <logger name="com.apache.ibatis" level="TRACE"/> - <logger name="java.sql.Connection" level="DEBUG"/> - <logger name="java.sql.Statement" level="DEBUG"/> - <logger name="java.sql.PreparedStatement" level="DEBUG"/> + <logger name="com.apache.ibatis" level="TRACE" /> + <logger name="java.sql.Connection" level="DEBUG" /> + <logger name="java.sql.Statement" level="DEBUG" /> + <logger name="java.sql.PreparedStatement" level="DEBUG" /> <!-- 日志输出级别 --> <root level="INFO"> - <appender-ref ref="STDOUT"/> - <appender-ref ref="FILE"/> - <appender-ref ref="HTML"/> - <appender-ref ref="FILE_HTML"/> + <appender-ref ref="STDOUT" /> + <appender-ref ref="FILE" /> + <appender-ref ref="HTML" /> + <appender-ref ref="FILE_HTML" /> </root> </configuration> -- libgit2 0.22.2