Java 在调试模式下以编程方式启用回登录?

Java 在调试模式下以编程方式启用回登录?,java,logging,configuration,logback,rollingfileappender,Java,Logging,Configuration,Logback,Rollingfileappender,我想知道是否有办法以编程方式启用调试模式。因为我不允许使用配置文件,所以我目前正在以编程方式配置所有内容。最近,我遇到了一个问题,RollingFileAppender停止写入文件,尽管FileAppender工作得非常好。事实上,RollingFileAppender上周也在工作,从那以后我所知道的一切都没有改变 请告诉我是否有办法启用调试,因为使用配置文件(logback.xml)进行调试似乎不起作用。在我发布问题后,Tony在这里提供了一个很好的答案 当您试图找出为什么在某些情况下Log

我想知道是否有办法以编程方式启用调试模式。因为我不允许使用配置文件,所以我目前正在以编程方式配置所有内容。最近,我遇到了一个问题,RollingFileAppender停止写入文件,尽管FileAppender工作得非常好。事实上,RollingFileAppender上周也在工作,从那以后我所知道的一切都没有改变


请告诉我是否有办法启用调试,因为使用配置文件(logback.xml)进行调试似乎不起作用。

在我发布问题后,Tony在这里提供了一个很好的答案

当您试图找出为什么在某些情况下LogBack不起作用时,这非常有用。我选择使用第一种方式来编写初始化代码

请记住,这是当您选择不使用像我这样的用例中的配置文件时


发件人:tony19

有两种方法:

1) 使用StatusPrinter.PrintInCaseofErrors或Warnings(loggerContext)

2) 将配置XML的硬编码字符串w/configuration.debug设置为“true”:

static final String LOGBACK_XML = 
    "<configuration debug='true'>" + 
    "  <appender name='FILE' class='ch.qos.logback.core.RollingFileAppender'>" +
    "    <file>foo.log</file>" +
    "    <append>true</append>" +
    "    <encoder>" +
    "      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>" +
    "    </encoder>" +
    "  </appender>" +
    "  <root level='INFO'>" +
    "    <appender-ref ref='FILE' />" +
    "  </root>" +
    "</configuration>"
    ;

static public void configLogback() {
    LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
            try {
           JoranConfigurator configurator = new JoranConfigurator();
           configurator.setContext(lc);
           lc.reset();

           configurator.doConfigure(new ByteArrayInputStream(LOGBACK_XML.getBytes()));
       } catch (JoranException je) {
           je.printStackTrace();
       }

       // you can also print the errors/warning explicitly (instead of debug='true' in xml)
       //StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
}
static final String LOGBACK\u XML=
"" + 
"  " +
“foo.log”+
“对”+
"    " +
“%-4相对[%thread]-5级别%logger{35}-%msg%n”+
"    " +
"  " +
"  " +
"    " +
"  " +
""
;
静态公共void configLogback(){
LoggerContext lc=(LoggerContext)LoggerFactory.getILoggerFactory();
试一试{
JoranConfigurator configurator=新JoranConfigurator();
setContext(lc);
lc.reset();
doConfigure(新的ByteArrayInputStream(LOGBACK_XML.getBytes());
}捕获(JoranException je){
je.printStackTrace();
}
//还可以显式打印错误/警告(而不是xml中的debug='true')
//状态打印机。错误或警告的打印输入(lc);
}