在 Java 里,“Logger 怎么过滤”通常取决于你用的是 哪种日志框架。下面按常见情况说明。
Logger logger = Logger.getLogger("com.example");
logger.setLevel(Level.WARNING); // 只记录 WARNING 及以上
logger.setFilter(record -> {
// 只记录包含 "important" 的日志
return record.getMessage().contains("important");
});
ConsoleHandler handler = new ConsoleHandler();
handler.setLevel(Level.SEVERE);
logger.addHandler(handler);
<logger name="com.example.service" level="DEBUG"/>
<logger name="com.example.dao" level="OFF"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
public class MyFilter extends Filter<ILoggingEvent> {
@Override
public FilterReply decide(ILoggingEvent event) {
return event.getMessage().contains("test")
? FilterReply.ACCEPT
: FilterReply.DENY;
}
}
<Logger name="com.example" level="info"/>
<Console name="Console">
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
</Console>
public class MyFilter implements Filter {
@Override
public Result filter(LogEvent event) {
return event.getMessage().getFormattedMessage().contains("debug")
? Result.DENY
: Result.NEUTRAL;
}
}
| 需求 | 推荐方式 |
|---|---|
| 只输出某个级别 | setLevel / level 配置 |
| 屏蔽某个包 | logger name + OFF |
| 按关键字过滤 | Filter / onMismatch |
| 不同环境不同日志 | profile + 配置文件 |
如果你能告诉我:
我可以给你更精确的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。