bifromq-plugin 插件报错怎么解决

陆() 陆() 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

日志:

日志配置目录:

 

 日志配置:

<?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>

 

...全文

相关推荐

产教融合实训基地与实践中心建设逻辑图-可编辑版

产教融合实训基地与实践中心建设逻辑图-可编辑版

龙猫与奥特曼

idea2025-free.zip

idea2025-free.zip

qq_45190508

sop基于灵敏度分析的有源配电网智能软开关优化配置升级1(Matlab代码实现)

内容概要:本文提出了一种基于灵敏度分析的有源配电网智能软开关(SOP)优化配置方法,旨在应对高比例分布式电源接入带来的电压波动与网络损耗加剧等问题。研究以IEEE33节点系统为算例,通过改进的灵敏度分析模型量化各节点对电压和功率流动的影响程度,进而构建SOP选址与定容的优化模型,实现降低网损、改善电压分布及提升系统运行灵活性的目标。全文详细阐述了灵敏度指标的数学推导、目标函数与约束条件的建模过程,并基于Matlab实现了完整的仿真求解流程,具备良好的工程实用性与学术参考价值。; 适合人群:电力系统及其自动化、电气工程等相关专业的硕士博士研究生、科研机构研究人员,以及从事智能配电网规划、运行与优化的工程技术人员。; 使用场景及目标:①研究分布式电源大规模接入背景下配电网的主动调控与优化策略;②指导智能软开关在实际配电网中的科学选址与容量配置;③为相关科研课题提供可复现的仿真案例,支撑学术论文撰写与算法验证。; 阅读建议:建议读者结合提供的Matlab代码与IEEE33节点标准模型进行动手实践,重点理解灵敏度指标的物理意义及其在优化模型中的应用逻辑,关注求解过程中的约束设置与算法收敛性,并可进一步拓展至SOP与储能联合配置、多时间尺度优化等复杂场景进行二次开发与研究。

荔枝科研社

Ubuntu安装Latex

关于Ubuntu安装Latex的详细记录和排错指南

Leers Ting

高校技术转移办公室人员在成果转化过程中,如何实现科技成果与产业需求的高效对接?.docx

高校技术转移办公室人员在成果转化过程中,如何实现科技成果与产业需求的高效对接?

BIZKEEN
评论
收藏 已收藏
分享
返回顶部
陆()
ThingLinks社区 446 成员 21 内容