2

快速提问,

查看这些静态分配程序日志记录级别的示例

http://www.onjava.com/pub/a/onjava/2002/06/19/log.html?page=2

http://www.vogella.com/articles/Logging/article.html

调用 Java 应用程序时如何通过参数动态设置日志记录级别

例如

java -jar myprogram.jar FINE

意思是代替这段代码

 logger.setLevel(Level.INFO);

我可以有类似的东西

logger.setLevel(args[0]);

在研究文档时,似乎不需要用字符串设置日志级别。

http://docs.oracle.com/javase/6/docs/api/java/util/logging/Level.html

4

4 回答 4

3

您可以使用内置方法Level.parse(String),它将级别名称字符串解析为Level.

参数字符串可以由级别名称或整数值组成。

例如:

  • “严重的”
  • “信息”
  • “1000”
于 2013-10-31T10:46:30.163 回答
1

您可以使用 amap来存储Level映射:

Map<String, Level> levelmap = new HashMap<String, Level>();
levelmap.put("info", Level.INFO);

然后使用此映射设置日志级别:

org.apache.log4j.Logger rootLogger = org.apache.log4j.Logger.getRootLogger();
String level = arg[0];
rootLogger.setLevel(levelmap.get(level));
于 2013-10-31T10:43:48.290 回答
1

您可以创建 String 和 Level 的 Map 并参考:

logger.setLevel(logmap.get(args[0]));
于 2013-10-31T10:38:19.160 回答
1

Level 类是参考:

    public static final Level INFO = new Level("INFO", 800, defaultBundle);

你可以从一个字符串映射"INFO"到一些常量Level.INFO,依此类推......

于 2013-10-31T10:38:52.607 回答