java - java logback 不同租户的不同日志级别
问题描述
目前我正在使用 logback MDC 来设置不同的租户。但我希望为不同的租户提供不同的日志级别。
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<appender name="TENANT-THREAD" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator>
<key>tenantName</key>
<defaultValue>MYAPP</defaultValue>
</discriminator>
<sift>
<appender name="FILE-${tenantName}"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logPath}/${tenantName}.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} %mdc [%thread] %level %logger{35} - %msg%n
</Pattern>
</encoder>
</appender>
</sift>
</appender>
<root level="DEBUG">
<appender-ref ref="TENANT-THREAD"/>
</root>
</configuration>
MDC.put("tenantName", tenantName);
MDC.remove("tenantName");
是否可以以编程方式为不同的租户设置不同的日志级别?
解决方案
要以编程方式更改日志级别,请使用:
Logger root = (Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
root.setLevel(Level.INFO);
Level.INFO
被选中的级别
推荐阅读
- jsp - 如何根据用户选择过滤jsp页面中的表格元素
- sql-server - 在具有来自另一个表的条件的列中插入值的函数
- python - 通过 Nodejs 构建 Android 应用程序
- react-native - React Native Calendars:如何更改议程中仅一项的背景?
- model-view-controller - 未定义变量:用户(查看:C:\xampp\mysql\CRUD\resources\views\Admin\Form User\index.blade.php)
- python - 数据框python上的外部连接
- c++ - “C++ 98 模式下不允许基于范围的循环”Visual Studio 代码中的错误
- selenium - 本地化 selenium 框架
- react-native - 使用 RN cli 进行 iOS 构建时不会自动启动打包程序
- python - 在 Django 中从 DateField 迁移到 DateTimeField