动态设置记录器级别

时间:2014-04-18 11:56:39

标签: java logging

我需要动态设置Pentaho Kettle Job的日志记录级别。 就像设置为INFO,ERROR等的级别一样。我需要从属性文件中获取级别

Properties prop = new Properties();
InputStream input = null;
input = new FileInputStream("D:\\config.properties");
prop.load(input);
System.out.println(prop.getProperty("logLevel"));
job.setLogLevel((LogLevel) prop.getProperty("logLevel"));

我不能这样设置,因为 prop.getProperty 是字符串。它不能被转换为LogLevel

如何动态获取此级别?

1 个答案:

答案 0 :(得分:0)

我不知道您正在使用的库,但这通常可以正常工作:

LogLevel ll = null;
switch (prop.getProperty("logLevel")) {
    case "info" : ll = LogLevel.INFO; break;
    case "debug" : ll = LogLevel.DEBUG; break;
    case "warn" : ll = LogLevel.WARN; break;
    default : ll = LogLevel.ERROR; break;
}
job.setLogLevel(ll);

对于不同的日志库,实现可能会有所不同。