Log4j设置动态表名

import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.lookup.StrLookup;
import java.util.Map;
 
public class DynamicTableNameLookup implements StrLookup<LogEvent> {
 
    @Override
    public String lookup(String key, LogEvent event) {
        // 这里可以根据日志事件或者其他条件来动态决定表名
        // 例如,根据日志级别、日志记录的时间等
        return "logs_" + key; // 这里的key可以是日志级别或者其他标识
    }
 
    public static StrLookup<LogEvent> getDynamicTableNameLookup() {
        return new DynamicTableNameLookup();
    }
}
<Appenders>
    <JDBC name="jdbcAppender" tableName="${:dynamicTableNameLookup}" ignoreExceptions="false">
        <ConnectionFactory class="MyConnectionFactory" method="getConnection" />
        <Column name="level" pattern="%level" />
        <Column name="logger" pattern="%logger" />
        <Column name="message" pattern="%message" />
        <!-- 其他列配置 -->
    </JDBC>
</Appenders>
<Loggers>
    <!-- 配置logger使用上面定义的jdbcAppender -->
    <Root level="info">
        <AppenderRef ref="jdbcAppender"/>
    </Root>
</Loggers>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值