在java中,例如,有对象有不同的和规则的命名chat1,chat2,chat3... 他们映射到 chatlogger1、chatlogger2、chatlogger3... 他们如何将日志数据输出到名为 chatlog1、chatlog2、chatlog3 的不同日志文件... 以及诸如 RollingFileAppender
之类的 logback 特性我希望处理logback xml配置而不是编码;
我尝试过一些方法,比如
<configuration>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/${logger}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/${logger}-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>10</maxHistory>
<totalSizeCap>100GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="file"/>
</root>
<logger name="chatlogger-*" level="info" additivity="false">
<appender-ref ref="file"/>
</logger>
</configuration>
和代码
Logger = LoggerFactory.getLogger("chatlogger-" + variableName );
但是没用,无法识别${logger}
关键是记录器名称是动态的,不是固定的,所以我不能在配置中预先定义每个。有什么方法可以编写通配符来解决问题吗?