Java 使用logback共享包登录不同的文件
我有一个批处理应用程序,它根据传递的参数执行两种不同的逻辑。我的应用程序使用Spring,我想在每个“不同进程”中登录不同的日志文件。 由于这些类位于不同的包中,我在logback.xml文件中配置了记录器以使用自己的appenderJava 使用logback共享包登录不同的文件,java,logback,Java,Logback,我有一个批处理应用程序,它根据传递的参数执行两种不同的逻辑。我的应用程序使用Spring,我想在每个“不同进程”中登录不同的日志文件。 由于这些类位于不同的包中,我在logback.xml文件中配置了记录器以使用自己的appender <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- Referencia: http://logback.qos.ch/manual/configurat
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- Referencia: http://logback.qos.ch/manual/configuration.html -->
<!-- Propiedades de configuracion -->
<property resource="batch.properties" />
<!-- Appenders: http://logback.qos.ch/manual/appenders.html -->
<!-- pattern: %date [%thread] %-5level %logger - [%file:%line] - %message%n -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date [%thread] %-5level %logger - %message%n</pattern>
</encoder>
</appender>
<appender name="appender1" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${log.dir}/batch-${HOSTNAME}.log</File>
<encoder>
<pattern>%date [%thread] %-5level %logger - %message%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
<FileNamePattern>${log.dir}/batch-${HOSTNAME}.log.%i</FileNamePattern>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<appender name="appender2" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${log.dir}/batch-${HOSTNAME}.log</File>
<encoder>
<pattern>%date [%thread] %-5level %logger - %message%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
<FileNamePattern>${log.dir}/batch-${HOSTNAME}.log.%i</FileNamePattern>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- Levels -->
<logger name="my.process1" level="INFO">
<appender-ref ref="appender1">/
</logger>
<logger name="my.process2" level="INFO">
<appender-ref ref="appender2">/
</logger>
<logger name="org.apache" level="INFO"/>
<logger name="org.springframework" level="WARN" />
<logger name="com.ibm" level="INFO"/>
<!-- Root -->
<root level="INFO">
<appender-ref ref="console"/>
</root>
%日期[%thread]-5级别%logger-%message%n
${log.dir}/batch-${HOSTNAME}.log
%日期[%thread]-5级别%logger-%message%n
1.
10
${log.dir}/batch-${HOSTNAME}.log。%i
10MB
${log.dir}/batch-${HOSTNAME}.log
%日期[%thread]-5级别%logger-%message%n
1.
10
${log.dir}/batch-${HOSTNAME}.log。%i
10MB
/
/
但我也想记录Spring信息,但“仅”记录在它正在执行的进程的文件中。我应该如何配置它
谢谢
编辑:发布了我的实际logback.xml。我知道,通过这种配置,spring不会登录任何文件,但我不知道如何将其配置为只登录一个文件。您可以改进并给出一个更具体的示例吗?您最好的选择可能是在spring日志中使用一个。我还不确定MDC作为决定因素是否有效,这取决于应用程序的工作方式。