什么';这是将Logback配置转换为Java的正确方法
我尝试将以下配置转换为代码:什么';这是将Logback配置转换为Java的正确方法,java,logback,Java,Logback,我尝试将以下配置转换为代码: <appender name="RootSiftAppender" class="ch.qos.logback.classic.sift.SiftingAppender"> <discriminator> <Key>testName</Key> <DefaultValue>platform-setup</DefaultValue&
<appender name="RootSiftAppender" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator>
<Key>testName</Key>
<DefaultValue>platform-setup</DefaultValue>
</discriminator>
<sift>
<appender name="FILE-${testName}" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${LOG_FOLDER}/${testName}.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>${LOG_FOLDER}/${testName}.%i.log</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>100</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>5MB</MaxFileSize>
</triggeringPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%level] %msg%n</Pattern>
</layout>
</appender>
</sift>
</appender>
测试名
平台设置
${LOG\u FOLDER}/${testName}.LOG
${LOG\u FOLDER}/${testName}。%i.LOG
1.
100
5MB
[%d{yyyy-MM-dd HH:MM:ss.SSS}][%level]%msg%n
这是我目前掌握的代码:
Logger root = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder ple = new PatternLayoutEncoder();
ple.setPattern("[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%level] %msg%n");
ple.setContext(lc);
ple.start();
SiftingAppender siftingAppender = new SiftingAppender();
MDCBasedDiscriminator discriminator = new MDCBasedDiscriminator();
discriminator.setKey("testName");
discriminator.setDefaultValue("platform-setup");
discriminator.setContext(lc);
discriminator.start();
siftingAppender.setDiscriminator(discriminator);
AppenderFactory<ILoggingEvent> appenderFactory =
(Context context, String discriminatingValue) -> {
/* Create your file appender here, with what ever options you need */
RollingFileAppender fileAppender = new RollingFileAppender<>();
FixedWindowRollingPolicy policy = new FixedWindowRollingPolicy();
policy.setMinIndex(1);
policy.setFileNamePattern("${LOG_FOLDER}/${testName}.%i.log");
policy.setContext(context);
policy.start();
SizeBasedTriggeringPolicy triggeringPolicy = new SizeBasedTriggeringPolicy();
triggeringPolicy.setMaxFileSize(FileSize.valueOf("5MB"));
triggeringPolicy.setContext(context);
triggeringPolicy.start();
fileAppender.setName("FILE-${testName}");
fileAppender.setFile("${LOG_FOLDER}/${testName}.log");
fileAppender.setTriggeringPolicy(triggeringPolicy);
fileAppender.setRollingPolicy(policy);
fileAppender.setEncoder(ple);
fileAppender.setContext(context);
fileAppender.setAppend(true);
fileAppender.start();
return fileAppender;
};
siftingAppender.setAppenderFactory(appenderFactory);
siftingAppender.setContext(lc);
siftingAppender.start();
root.addAppender(siftingAppender);
root.setAdditive(true);
Logger root=(Logger)LoggerFactory.getLogger(Logger.root\u Logger\u NAME);
LoggerContext lc=(LoggerContext)LoggerFactory.getILoggerFactory();
PatternLayoutCoder ple=新的PatternLayoutCoder();
ple.setPattern(“[%d{yyyy-MM-dd HH:MM:ss.SSS}][%level]%msg%n”);
ple.setContext(lc);
ple.start();
SiftingAppender SiftingAppender=新的SiftingAppender();
MDCBasedScriminator鉴别器=新的MDCBasedScriminator();
discriminator.setKey(“testName”);
鉴别器.setDefaultValue(“平台设置”);
鉴别器。设置上下文(lc);
discriminator.start();
筛选附加器。设置鉴别器(鉴别器);
附件工厂附件工厂=
(上下文,字符串判别值)->{
/*在这里创建您的文件附加器,使用您需要的任何选项*/
RollingFileAppender fileAppender=新的RollingFileAppender();
FixedWindowRollingPolicy=新的FixedWindowRollingPolicy();
政策。setMinIndex(1);
policy.setFileNamePattern(“${LOG_FOLDER}/${testName}.%i.LOG”);
policy.setContext(context);
policy.start();
SizeBadeTriggeringPolicy triggeringPolicy=新的SizeBadeTriggeringPolicy();
triggeringPolicy.setMaxFileSize(FileSize.valueOf(“5MB”);
triggeringPolicy.setContext(context);
triggeringPolicy.start();
setName(“文件-${testName}”);
setFile(“${LOG_FOLDER}/${testName}.LOG”);
fileAppender.setTriggeringPolicy(triggeringPolicy);
fileAppender.setRollingPolicy(策略);
fileAppender.setEncoder(ple);
setContext(context);
setAppend(true);
fileAppender.start();
返回文件追加器;
};
筛选Appender.setAppenderFactory(appenderFactory);
筛选appender.setContext(lc);
siftingAppender.start();
root.addAppender(筛选appender);
root.setaddition(真);
我从XML文件中注释掉了appender:
<root level="DEBUG">
<!--<appender-ref ref="RootSiftAppender"/>-->
<appender-ref ref="STDOUT"/>
<appender-ref ref="STDERR"/>
</root>
重命名该文件以确保它不会显示,但不会出现运气问题。你知道为什么它不起作用吗