我想知道如何在Spring批处理中使用MCD记录诸如作业名
和执行ID
之类的内容。
下面是一些代码:
Bootstrap.properties
logging.pattern.level=%5p [%X{X-B3-TraceId:-},%X{sessionId:-},%X{execId:-},%X{program:-},%X{mainframeId:-}]
spring.application.name=mcc
spring.profiles.active=globals,local,local-override
这个文件有我的主要方法。当我用mdc.put(“execid”,“12345”);
手动设置这里的字段时,我在日志中看到了它,但我不明白如何将我需要的实际信息放在这里。
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})
public class MccApplication {
public static void main(String[] args) {
MDC.put("execId", "12345");
SpringApplication.run(MccApplication.class, args);
}
}
如果有任何见解,我将不胜感激:)谢谢。
免责声明:我不熟悉spring-batch
MDC
将用于记录作业名称和执行ID以及日志语句,因为MDC具有线程关联。因此,如果您在线程中向MDC放了一些东西,那么在该线程的整个生命周期中,您都可以使用这些东西(并可以进行日志记录)。因此,如果您将mdc.put(“execid”,“12345”);
放在主方法中,那么它将仅在主线程中可用。
作业名和执行ID仅在spring批处理可能产生的任何子线程中才有意义(我在这里是基于疯狂的假设运行的,因为我不熟悉spring批处理)。因此,将mdc.put(“execid”,“12345”);
添加到实际作业的起始点,而不是main()方法中。
我无法在使用JPA的Spring启动应用程序中记录Spring批处理日志。这是属性文件配置(application.properties)。我想看看应用程序是否从日志中创建了Spring批处理表。 https://github.com/spring-projects/spring-batch/blob/master/spring-batch-core/src/main/resources/org/
我已经将spring batch admin与现有的spring web应用程序集成。我可以使用batch admin屏幕触发/控制作业,并使用Tomcat8进行部署。一切正常,但Spring管理批处理日志在控制台中触发,导致catalina。填写GB。日志样本如下: 我的log4j配置如下: 但我不断地得到日志。你能建议如何禁用/增加日志级别吗?提前谢谢。
主要内容:输出通过使用重定向命令可以在批处理脚本中进行登录。 语法 创建一个名为的文件,并在文件中输入以下命令。 上面的命令有一个错误,因为命令的选项是以错误的方式给出的。 输出 如果带有上面的文件的命令运行为 - 而打开文件,会看到下面的错误。 这个命令的语法是 - 通过键入获取更多的帮助内容。 如果打开名为的文件,它会显示一个执行命令的日志。
我正在使用spring批处理使用RepositoryItemReader从postgresql DB读取记录,然后将其写入主题。我看到大约有100万条记录需要处理,但它并没有处理所有的记录。我已经将reader的pageSize设置为10,000并且与提交间隔(块大小)相同
我使用的是spring批处理,和通常使用的一样,我有读取器、处理器和写入器。 我有两个问题 1>Reader查询所有200条记录(表中记录总大小为200,我给出了pageSize=200),因此它得到所有200条记录,在处理器中,我们需要所有这些记录的列表,因为我们必须将每个记录与其他199条记录进行比较,以便将它们分组在不同的层中。因此我在想,如果我们能在处理步骤中得到那个列表,我就可以操纵它们
我有一个SpringCloudGateway应用程序,它充当我的数据服务的网关。我的应用程序使用SSE在UI中推送通知。当我看到网关日志时,我的日志中充满了异常,如: 我有一个错误处理程序类: 但它仍在记录错误。如何使我的网关不写入日志。 我的pom文件是: 我的依赖关系树: