bifromq-plugin 插件报错怎么解决

陆() 2025-07-22 11:43:27

日志:

日志配置目录:

 

 日志配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">

    <!-- 动态参数配置 -->
    <property name="pluginId" value="${pluginId:-UNKNOWN_PLUGIN}"/>
    <property name="logDir" value="${LOG_DIR:-/var/log/bifromq/plugins}"/>
    <property name="logPattern"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS} | %-5p | ${HOSTNAME:-NA} | ${PID:-NA} | [%t] | %-40logger{40} [%F:%L] | %m%n%ex{full}"/>

    <!-- 异步日志队列参数 -->
    <property name="asyncQueueSize" value="8192"/>
    <property name="asyncDiscardThreshold" value="0"/> <!-- 0表示不丢弃日志 -->

    <!-- 1. TRACE 级别日志 (异步) -->
    <appender name="ASYNC_TRACE" class="ch.qos.logback.classic.AsyncAppender">
        <queueSize>${asyncQueueSize}</queueSize>
        <discardingThreshold>${asyncDiscardThreshold}</discardingThreshold>
        <appender-ref ref="TRACE_FILE"/>
    </appender>

    <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logDir}/${pluginId}/trace.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logDir}/${pluginId}/trace.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxHistory>60</maxHistory> <!-- 等保要求最低60天 -->
            <maxFileSize>1GB</maxFileSize>
            <totalSizeCap>100GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${logPattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>TRACE</level>
        </filter>
    </appender>

    <!-- 2. DEBUG 级别日志 (异步) -->
    <appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
        <queueSize>${asyncQueueSize}</queueSize>
        <appender-ref ref="DEBUG_FILE"/>
    </appender>

    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logDir}/${pluginId}/debug.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logDir}/${pluginId}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxHistory>60</maxHistory>
            <maxFileSize>2GB</maxFileSize>
            <totalSizeCap>200GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${logPattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
    </appender>

    <!-- 3. INFO 级别日志 (异步) -->
    <appender name="ASYNC_INFO" class="ch.qos.logback.classic.AsyncAppender">
        <queueSize>${asyncQueueSize}</queueSize>
        <appender-ref ref="INFO_FILE"/>
    </appender>

    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logDir}/${pluginId}/info.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${logDir}/${pluginId}/info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>180</maxHistory> <!-- 业务日志保留半年 -->
            <maxFileSize>5GB</maxFileSize>
            <totalSizeCap>500GB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${logPattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <!-- 4. WARN 级别日志 (同步) -->
    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logDir}/${pluginId}/warn.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${logDir}/${pluginId}/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>365</maxHistory> <!-- 警告日志保留1年 -->
        </rollingPolicy>
        <encoder>
            <pattern>${logPattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 5. ERROR 级别日志 (同步+告警触发) -->
    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logDir}/${pluginId}/error.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${logDir}/${pluginId}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>365</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${logPattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 6. 安全审计日志 (异步+严格保留) -->
    <appender name="ASYNC_AUDIT" class="ch.qos.logback.classic.AsyncAppender">
        <queueSize>1024</queueSize>
        <appender-ref ref="AUDIT_FILE"/>
    </appender>

    <appender name="AUDIT_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logDir}/${pluginId}/audit.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${logDir}/${pluginId}/audit.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>730</maxHistory> <!-- 审计日志保留2年 -->
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} | AUDIT | ${HOSTNAME} | ${pluginId} | %m%n</pattern>
        </encoder>
    </appender>

    <!-- 日志分级控制 -->
    <logger name="com.baidu.bifromq" level="WARN" additivity="false"/>
    <logger name="org.pf4j" level="WARN" additivity="false"/>

    <!-- 主业务日志 -->
    <logger name="com.mqttsnet.thinglinks" level="INFO">
        <appender-ref ref="ASYNC_TRACE"/>
        <appender-ref ref="ASYNC_DEBUG"/>
        <appender-ref ref="ASYNC_INFO"/>
        <appender-ref ref="WARN_FILE"/>
        <appender-ref ref="ERROR_FILE"/>
    </logger>

    <!-- 安全审计日志 -->
    <logger name="com.mqttsnet.thinglinks.audit" level="INFO" additivity="false">
        <appender-ref ref="ASYNC_AUDIT"/>
    </logger>

    <root level="WARN">
        <appender-ref ref="INFO_FILE"/>
    </root>
</configuration>

 

...全文
14 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

446

社区成员

发帖
与我相关
我的任务
社区描述
ThingLinks物联网一体化平台社区 版本将持续迭代更新,支持商业二开; 欢迎你分享物联网及平台相关技术文档;
物联网能源开源 企业社区
社区管理员
  • xiaonannet
  • jian436
  • 很久是多久
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

ThingLinks物联网一体化平台社区

https://gitee.com/mqttsnet/thinglinks

https://github.com/mqttsnet/thinglinks

试试用AI创作助手写篇文章吧