Java logger更好的格式化

时间:2014-02-11 13:58:55

标签: java logging logcat

鉴于以下主要内容:

public static void main(String[] args) {
    System.out.println("System.out.println");
    Logger.getGlobal().setLevel(Level.INFO);
    Logger.getGlobal().log(Level.INFO, "Logger.INFO");
}

我得到以下输出: Logger output

如果有办法为Logger获得更好的输出?我更喜欢单行输出和连贯的颜色突出显示(SEVERE =红色,INFO =绿色,......基本上像Android的logcat)。

由于

4 个答案:

答案 0 :(得分:1)

我使用eclipse插件grepConsole

使用smple正则表达式,您可以更改整行的(前景|背景)颜色,或者只为该行的每一组使用不同的颜色。

答案 1 :(得分:0)

java系统只实现两个输出流,System.err和System.out流。后者总是黑色,前者的输出在大多数IDE中总是显示为红色。基本上,您无法轻松设置此输出的颜色。

为了更改颜色...我想你必须在终端/ windows控制台中运行它并使用文本中编码的(本机)颜色代码,否则你可以创建一个eclipse的新插件(或者可能搜索其他现有的插件?)会以不同的方式呈现您的输出。我至少很确定没有简单的解决方案。

答案 2 :(得分:0)

您不会在日志文件中获得颜色,因为它是纯文本。 日志查看器(如@Cqnqrd所述)可以添加颜色。

查看slf4j和/或logback。两者似乎都比你的技术更好。

示例代码:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Blam
{
    private static final Logger = LoggerFactory.getLogger(Blam.class);

    public void hooty()
    {
         logger.info("some {}", "example");
         logger.info("logging {} with {} parameters",
             "statements",
             2);
    }
}

输出:

some example
logging statements with 2 parameters

{}的值是只有info才能替换参数 (在此示例中)启用了级别日志记录。

答案 3 :(得分:0)

public class LogHandler extends ConsoleHandler {

    public LogHandler() {
        setOutputStream(System.out);
    }

}

LogHandler handler = new LogHandler();
handler.setFormatter(new LogFormatter());

Logger logger = Logger.getAnonymousLogger();
logger.setUseParentHandlers(false);
logger.addHandler(handler);

LogRecord record = new LogRecord(Level.INFO, "This is just a test");
logger.log(record);