Logging 禁用Spring批处理SQL查询的日志记录

Logging 禁用Spring批处理SQL查询的日志记录,logging,spring-batch,Logging,Spring Batch,如何禁用Spring批处理SQL查询的日志记录 它们是从org.springframework.jdbc.core.jdbc模板记录器记录的,因为: logging.level: org.springframework.jdbc: TRACE 看起来像: 2017-05-27 20:41:55.957 DEBUG 13088 --- [jobLauncherTaskExecutor-1] o.s.jdbc.core.JdbcTemplate : Executin

如何禁用Spring批处理SQL查询的日志记录

它们是从org.springframework.jdbc.core.jdbc模板记录器记录的,因为:

logging.level:
  org.springframework.jdbc: TRACE
看起来像:

2017-05-27 20:41:55.957 DEBUG 13088 --- [jobLauncherTaskExecutor-1] o.s.jdbc.core.JdbcTemplate               : Executing prepared SQL update
2017-05-27 20:41:55.957 DEBUG 13088 --- [jobLauncherTaskExecutor-1] o.s.jdbc.core.JdbcTemplate               : Executing prepared SQL statement [UPDATE BATCH_JOB_EXECUTION_CONTEXT SET SHORT_CONTEXT = ?, SERIALIZED_CONTEXT = ? WHERE JOB_EXECUTION_ID = ?]
2017-05-27 20:41:55.958 DEBUG 13088 --- [jobLauncherTaskExecutor-1] o.s.jdbc.core.JdbcTemplate               : SQL update affected 1 rows
有这么多这样的消息,我看不到有问题的应用程序消息


问题是,通过禁用此记录器,我的应用程序SQL查询也将被禁用。

您尚未指定使用的日志框架

我已经在我的Spring批处理应用程序中使用logback管理了这一点

我为我的应用程序定义了一个单独的记录器,rest是默认记录器,然后我可以为两个不同的记录器分别设置日志记录级别

请参阅获取有关在logback中定义命名记录器的一些想法

解决,

有这么多的信息,我看不到我的应用程序 信息

我想,无论您使用什么日志框架,基本的想法都是为您的应用程序需求定义一个单独的记录器,并将rest定向到一个默认记录器,然后单独设置级别,即在包级别上进行日志记录在这里没有帮助


中提到的另一种解决方案也将禁用查询日志

我的应用程序也使用JdbcTemplate,我喜欢看到那些SQL查询。但除此之外,我还看到了大量的Spring批处理SQL查询。。。恐怕只有对msg内容进行语法分析才能消除那些关于您的演示文稿的信息。这种方法过于激进,可以将精力花在向应用程序添加MDC支持上。在这种情况下,您将在MCD中使用逻辑标记,这是您最初尝试实现的,并且系统结构记录器名称对于过滤非常有用。我想,我误解了你的问题,我的回答没有解决你的问题。你们解决了你们的问题吗?我检查了JdbcTemplate的源代码,在批处理框架看来,若不过滤掉数据库活动,污染应用程序日志是不可能的。