mirror of
https://gitee.com/NexIoT/Universal-IoT-Java.git
synced 2026-10-31 00:41:27 +08:00
fix:docker版本
This commit is contained in:
@@ -33,7 +33,8 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \
|
||||
CMD curl -f http://localhost:9092/actuator/health || exit 1
|
||||
|
||||
# 预创建日志目录
|
||||
RUN mkdir -p /app/logs
|
||||
RUN mkdir -p /app/logs /app/logs/global /app/logs/api /app/logs/tcp /app/logs/mqtt
|
||||
|
||||
# 启动命令:创建日志目录,执行脚本后台启动,再跟随实际项目日志保持前台
|
||||
ENTRYPOINT ["sh", "-c", "mkdir -p /app/logs && cn-universal-web/bin/start.sh && tail -F /app/logs/cn-universal-web.log"]
|
||||
# 启动命令:创建日志目录,执行启动脚本,前台跟随 info.log 保持容器存活
|
||||
ENTRYPOINT ["sh", "-c", "mkdir -p /app/logs && /app/cn-universal-web/bin/start.sh && tail -F /app/logs/info.log"]
|
||||
ENTRYPOINT ["sh", "-c", "mkdir -p /app/logs /app/logs/global /app/logs/api /app/logs/tcp /app/logs/mqtt && touch /app/logs/cn-universal-web.log /app/logs/all.log /app/logs/global/info.log /app/logs/global/warn.log /app/logs/global/error.log && cn-universal-web/bin/start.sh && tail -n +1 -F /app/logs/all.log /app/logs/cn-universal-web.log /app/logs/global/info.log /app/logs/global/warn.log /app/logs/global/error.log"]
|
||||
|
||||
@@ -29,4 +29,4 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \
|
||||
RUN mkdir -p /app/logs
|
||||
|
||||
# 启动命令:创建日志目录,执行脚本后台启动,再跟随实际项目日志保持前台
|
||||
ENTRYPOINT ["sh", "-c", "mkdir -p /app/logs && cn-universal-web/bin/start.sh && tail -F /app/logs/cn-universal-web.log"]
|
||||
ENTRYPOINT ["sh", "-c", "mkdir -p /app/logs && cn-universal-web/bin/start.sh && tail -F /app/logs/info.log"]
|
||||
|
||||
@@ -1,239 +1,246 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<springProperty scope="context" name="log.path" source="logging.file.path" defaultValue="./logs"/>
|
||||
<shutdownHook class="ch.qos.logback.core.hook.DefaultShutdownHook"/>
|
||||
<springProperty scope="context" name="log.path" source="logging.file.path" defaultValue="./logs"/>
|
||||
<shutdownHook class="ch.qos.logback.core.hook.DefaultShutdownHook"/>
|
||||
|
||||
<!-- 日志格式定义 -->
|
||||
<!-- 全局合并日志格式:增加模块标识,便于区分来源 -->
|
||||
<property name="all.pattern"
|
||||
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] [%X{ctxId}] [%logger] %-5level - %msg%n"/>
|
||||
<!-- 模块独立日志格式(保持原样) -->
|
||||
<property name="module.pattern"
|
||||
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] [%X{ctxId}] %-5level - %msg%n"/>
|
||||
<!-- 控制台和其他格式 -->
|
||||
<property name="console.pattern"
|
||||
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger] %-5level - %msg%n"/>
|
||||
<property name="global.pattern"
|
||||
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] %-5level %logger{30} - %msg%n"/>
|
||||
<!-- 日志格式定义 -->
|
||||
<!-- 全局合并日志格式:增加模块标识,便于区分来源 -->
|
||||
<property name="all.pattern"
|
||||
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] [%X{ctxId}] [%logger] %-5level - %msg%n"/>
|
||||
<!-- 模块独立日志格式(保持原样) -->
|
||||
<property name="module.pattern"
|
||||
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] [%X{ctxId}] %-5level - %msg%n"/>
|
||||
<!-- 控制台和其他格式 -->
|
||||
<property name="console.pattern"
|
||||
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger] %-5level - %msg%n"/>
|
||||
<property name="global.pattern"
|
||||
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] %-5level %logger{30} - %msg%n"/>
|
||||
|
||||
<!-- 1. 全局合并日志(汇总所有日志) -->
|
||||
<appender name="ALL_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/all.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/all.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>1GB</maxFileSize> <!-- 合并日志可适当放大 -->
|
||||
<maxHistory>15</maxHistory> <!-- 保留15天,避免过大 -->
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${all.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level> <!-- 合并日志默认输出INFO及以上 -->
|
||||
</filter>
|
||||
</appender>
|
||||
<!-- 1. 全局合并日志(汇总所有日志) -->
|
||||
<appender name="ALL_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/info.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>1GB</maxFileSize> <!-- 合并日志可适当放大 -->
|
||||
<maxHistory>15</maxHistory> <!-- 保留15天,避免过大 -->
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${all.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level> <!-- 合并日志默认输出INFO及以上 -->
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 2. 全局非模块日志(按级别拆分) -->
|
||||
<appender name="GLOBAL_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/global/info.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/global/info.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${global.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>INFO</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
<appender name="GLOBAL_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/warn.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/warn.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${global.pattern}</pattern>
|
||||
<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="GLOBAL_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/global/warn.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/global/warn.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${global.pattern}</pattern>
|
||||
<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="GLOBAL_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/error.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
<maxHistory>90</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${global.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>ERROR</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<appender name="GLOBAL_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/global/error.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/global/error.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
<maxHistory>90</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${global.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<level>ERROR</level>
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
<!-- 3. 模块独立日志 -->
|
||||
<appender name="API_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/api.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/api.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${module.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 3. 模块独立日志 -->
|
||||
<appender name="API_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/api/api.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/api/api.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${module.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
</filter>
|
||||
</appender>
|
||||
<appender name="TCP_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/tcp.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/tcp.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${module.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<appender name="TCP_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/tcp/tcp.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/tcp/tcp.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${module.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
</filter>
|
||||
</appender>
|
||||
<appender name="MQTT_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/mqtt.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/mqtt.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${module.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<appender name="MQTT_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/mqtt/mqtt.log</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<fileNamePattern>${log.path}/mqtt/mqtt.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
|
||||
<maxFileSize>500MB</maxFileSize>
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${module.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
</filter>
|
||||
</appender>
|
||||
<!-- 4. 控制台输出 -->
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${console.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 4. 控制台输出 -->
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${console.pattern}</pattern>
|
||||
<charset>UTF-8</charset>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>INFO</level>
|
||||
</filter>
|
||||
</appender>
|
||||
<!-- 开发环境(dev) -->
|
||||
<springProfile name="dev">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="ALL_LOG"/> <!-- 全局合并日志 -->
|
||||
<appender-ref ref="GLOBAL_WARN"/>
|
||||
<appender-ref ref="GLOBAL_ERROR"/>
|
||||
</root>
|
||||
|
||||
<!-- 开发环境(dev) -->
|
||||
<springProfile name="dev">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="ALL_LOG"/> <!-- 全局合并日志 -->
|
||||
<appender-ref ref="GLOBAL_INFO"/>
|
||||
<appender-ref ref="GLOBAL_WARN"/>
|
||||
<appender-ref ref="GLOBAL_ERROR"/>
|
||||
</root>
|
||||
<!-- 模块日志:输出到独立文件 + 合并日志 + 控制台 -->
|
||||
<logger name="api" level="DEBUG" additivity="true"> <!-- additivity=true:允许继承root的appender(含ALL_LOG) -->
|
||||
<appender-ref ref="API_LOG"/> <!-- 独立文件 -->
|
||||
</logger>
|
||||
<logger name="tcp" level="DEBUG" additivity="true">
|
||||
<appender-ref ref="TCP_LOG"/>
|
||||
</logger>
|
||||
<logger name="mqtt" level="DEBUG" additivity="true">
|
||||
<appender-ref ref="MQTT_LOG"/>
|
||||
</logger>
|
||||
|
||||
<!-- 模块日志:输出到独立文件 + 合并日志 + 控制台 -->
|
||||
<logger name="api" level="DEBUG"
|
||||
additivity="true"> <!-- additivity=true:允许继承root的appender(含ALL_LOG) -->
|
||||
<appender-ref ref="API_LOG"/> <!-- 独立文件 -->
|
||||
</logger>
|
||||
<logger name="tcp" level="DEBUG" additivity="true">
|
||||
<appender-ref ref="TCP_LOG"/>
|
||||
</logger>
|
||||
<logger name="mqtt" level="DEBUG" additivity="true">
|
||||
<appender-ref ref="MQTT_LOG"/>
|
||||
</logger>
|
||||
<logger name="org.springframework" level="WARN"/>
|
||||
<logger name="cn.hutool" level="INFO"/>
|
||||
|
||||
<!-- MyBatis SQL日志 -->
|
||||
<logger name="cn.universal.persistence.mapper" level="DEBUG" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="ALL_LOG"/>
|
||||
</logger>
|
||||
</springProfile>
|
||||
|
||||
<logger name="org.springframework" level="WARN"/>
|
||||
<logger name="cn.hutool" level="INFO"/>
|
||||
<!-- 测试环境(huo) -->
|
||||
<springProfile name="test,test2,huo">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="ALL_LOG"/> <!-- 全局合并日志 -->
|
||||
<appender-ref ref="GLOBAL_WARN"/>
|
||||
<appender-ref ref="GLOBAL_ERROR"/>
|
||||
</root>
|
||||
|
||||
<!-- MyBatis SQL日志 -->
|
||||
<logger name="cn.universal.persistence.mapper" level="DEBUG" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="ALL_LOG"/>
|
||||
</logger>
|
||||
</springProfile>
|
||||
<!-- 模块日志:独立文件 + 合并日志 -->
|
||||
<logger name="api" level="INFO" additivity="true">
|
||||
<appender-ref ref="API_LOG"/>
|
||||
</logger>
|
||||
<logger name="tcp" level="INFO" additivity="true">
|
||||
<appender-ref ref="TCP_LOG"/>
|
||||
</logger>
|
||||
<logger name="mqtt" level="INFO" additivity="true">
|
||||
<appender-ref ref="MQTT_LOG"/>
|
||||
</logger>
|
||||
|
||||
<!-- 测试环境(huo) -->
|
||||
<springProfile name="test,test2,huo">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="ALL_LOG"/> <!-- 全局合并日志 -->
|
||||
<appender-ref ref="GLOBAL_INFO"/>
|
||||
<appender-ref ref="GLOBAL_WARN"/>
|
||||
<appender-ref ref="GLOBAL_ERROR"/>
|
||||
</root>
|
||||
<logger name="org.springframework" level="WARN"/>
|
||||
<logger name="cn.hutool" level="WARN"/>
|
||||
|
||||
<!-- MyBatis SQL日志 -->
|
||||
<logger name="cn.universal.persistence.mapper" level="DEBUG" additivity="false">
|
||||
<appender-ref ref="ALL_LOG"/>
|
||||
</logger>
|
||||
</springProfile>
|
||||
|
||||
<!-- 模块日志:独立文件 + 合并日志 -->
|
||||
<logger name="api" level="INFO" additivity="true">
|
||||
<appender-ref ref="API_LOG"/>
|
||||
</logger>
|
||||
<logger name="tcp" level="INFO" additivity="true">
|
||||
<appender-ref ref="TCP_LOG"/>
|
||||
</logger>
|
||||
<logger name="mqtt" level="INFO" additivity="true">
|
||||
<appender-ref ref="MQTT_LOG"/>
|
||||
</logger>
|
||||
<!-- 生产环境 -->
|
||||
<springProfile name="prod,beta,out">
|
||||
<root level="WARN">
|
||||
<appender-ref ref="ALL_LOG"/> <!-- 全局合并日志 -->
|
||||
<appender-ref ref="GLOBAL_WARN"/>
|
||||
<appender-ref ref="GLOBAL_ERROR"/>
|
||||
</root>
|
||||
|
||||
<logger name="org.springframework" level="WARN"/>
|
||||
<logger name="cn.hutool" level="WARN"/>
|
||||
<!-- 模块日志:独立文件 + 合并日志 -->
|
||||
<logger name="api" level="INFO" additivity="true">
|
||||
<appender-ref ref="API_LOG"/>
|
||||
</logger>
|
||||
<logger name="tcp" level="INFO" additivity="true">
|
||||
<appender-ref ref="TCP_LOG"/>
|
||||
</logger>
|
||||
<logger name="mqtt" level="INFO" additivity="true">
|
||||
<appender-ref ref="MQTT_LOG"/>
|
||||
</logger>
|
||||
|
||||
<!-- MyBatis SQL日志 -->
|
||||
<logger name="cn.universal.persistence.mapper" level="DEBUG" additivity="false">
|
||||
<appender-ref ref="ALL_LOG"/>
|
||||
</logger>
|
||||
</springProfile>
|
||||
<logger name="org.springframework" level="ERROR"/>
|
||||
<logger name="cn.hutool" level="ERROR"/>
|
||||
|
||||
<!-- MyBatis SQL日志(生产环境谨慎开启) -->
|
||||
<!-- <logger name="cn.universal.persistence.mapper" level="DEBUG" additivity="false">-->
|
||||
<!-- <appender-ref ref="ALL_LOG"/>-->
|
||||
<!-- </logger>-->
|
||||
</springProfile>
|
||||
|
||||
<!-- 生产环境 -->
|
||||
<springProfile name="prod,beta,out">
|
||||
<root level="WARN">
|
||||
<appender-ref ref="ALL_LOG"/> <!-- 全局合并日志 -->
|
||||
<appender-ref ref="GLOBAL_WARN"/>
|
||||
<appender-ref ref="GLOBAL_ERROR"/>
|
||||
</root>
|
||||
<!-- Docker 环境(容器内运行) -->
|
||||
<springProfile name="docker">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="ALL_LOG"/>
|
||||
<appender-ref ref="GLOBAL_WARN"/>
|
||||
<appender-ref ref="GLOBAL_ERROR"/>
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
</root>
|
||||
|
||||
<!-- 模块日志:独立文件 + 合并日志 -->
|
||||
<logger name="api" level="INFO" additivity="true">
|
||||
<appender-ref ref="API_LOG"/>
|
||||
</logger>
|
||||
<logger name="tcp" level="INFO" additivity="true">
|
||||
<appender-ref ref="TCP_LOG"/>
|
||||
</logger>
|
||||
<logger name="mqtt" level="INFO" additivity="true">
|
||||
<appender-ref ref="MQTT_LOG"/>
|
||||
</logger>
|
||||
<!-- 模块日志:独立文件 + 合并日志 -->
|
||||
<logger name="api" level="INFO" additivity="true">
|
||||
<appender-ref ref="API_LOG"/>
|
||||
</logger>
|
||||
<logger name="tcp" level="INFO" additivity="true">
|
||||
<appender-ref ref="TCP_LOG"/>
|
||||
</logger>
|
||||
<logger name="mqtt" level="INFO" additivity="true">
|
||||
<appender-ref ref="MQTT_LOG"/>
|
||||
</logger>
|
||||
|
||||
<logger name="org.springframework" level="ERROR"/>
|
||||
<logger name="cn.hutool" level="ERROR"/>
|
||||
<logger name="org.springframework" level="WARN"/>
|
||||
<logger name="cn.hutool" level="WARN"/>
|
||||
|
||||
<!-- MyBatis SQL日志(生产环境谨慎开启) -->
|
||||
<!-- <logger name="cn.universal.persistence.mapper" level="DEBUG" additivity="false">-->
|
||||
<!-- <appender-ref ref="ALL_LOG"/>-->
|
||||
<!-- </logger>-->
|
||||
</springProfile>
|
||||
<!-- MyBatis SQL日志 -->
|
||||
<logger name="cn.universal.persistence.mapper" level="DEBUG" additivity="false">
|
||||
<appender-ref ref="ALL_LOG"/>
|
||||
</logger>
|
||||
</springProfile>
|
||||
</configuration>
|
||||
+1
-2
@@ -22,10 +22,9 @@ services:
|
||||
- MQTT_CFG_HOST_OUT=${MQTT_HOST_OUT:-tcp://127.0.0.1:1883}
|
||||
- MQTT_CFG_EMQX_HEADER_KEY=${EMQX_HEADER_KEY:-universal-emqx}
|
||||
- MQTT_CFG_EMQX_HEADER_VALUE=${EMQX_HEADER_VALUE:-d41d8cd98f00b204e9800998ecf8427e}
|
||||
- SPRING_PROFILES_ACTIVE=docker
|
||||
- SPRING_PROFILES_ACTIVE=docker,prod
|
||||
- RUN_MODE=docker
|
||||
- LOGGING_FILE_PATH=/app/logs
|
||||
- LOGGING_FILE_NAME=/app/logs/cn-universal-web.log
|
||||
- SERVER_PORT=9092
|
||||
- SERVER_HTTP2_ENABLED=false
|
||||
- JAVA_TOOL_OPTIONS=-Dio.netty.native.workdir=/app/logs
|
||||
|
||||
@@ -36,8 +36,7 @@ services:
|
||||
# 应用配置
|
||||
- SPRING_PROFILES_ACTIVE=docker
|
||||
- RUN_MODE=docker
|
||||
- LOGGING_FILE_PATH=/app/logs/cn-universal2
|
||||
- LOGGING_FILE_NAME=/app/logs/cn-universal-web.log
|
||||
- LOGGING_FILE_PATH=/app/logs
|
||||
- SERVER_PORT=9092
|
||||
- SERVER_HTTP2_ENABLED=false
|
||||
- JAVA_TOOL_OPTIONS=-Dio.netty.native.workdir=/app/logs
|
||||
|
||||
Reference in New Issue
Block a user