如何在打印日志时避免始终打印记录器主类名称?

时间:2019-04-20 07:45:24

标签: java logging

我要在控制台中打印日志。我正在使用 java.util.logging.Logger 类来打印日志。下面是我的代码。

import java.text.MessageFormat;
import java.util.logging.Logger;
import com.practice.exception.InvalidOperationException;

public final class Log {

    private static Logger logger = Logger.getLogger(Log.class.getSimpleName());
    private Log() {
        throw new InvalidOperationException("Object creation is not allowed.");
    }
    public static void logInfo(String pattern, Object...arguments) {
        MessageFormat format = new MessageFormat(pattern);
        String message = format.format(arguments);
        logger.info(message);
    }
}

我正在使用Log.logInfo()方法来打印日志。我的问题是,当我打印日志时,它总是以以下格式打印。我不想打印 “ 2019年4月20日,下午com.practice.utils.Log logInfo” 。有什么办法可以做到这一点?

Apr 20, 2019 1:06:14 PM com.practice.utils.Log logInfo
INFO: First text I have entered.
Apr 20, 2019 1:06:14 PM com.practice.utils.Log logInfo
INFO: Second text I have entered.

2 个答案:

答案 0 :(得分:0)

在此处查看一些建议: https://www.logicbig.com/tutorials/core-java-tutorial/logging/customizing-default-format.html

最简单的方法是(通过链接):

System.setProperty("java.util.logging.SimpleFormatter.format", "[%1$tF %1$tT] [%4$-7s] %5$s %n");

或更简单(仅打印日志级别和消息):

System.setProperty("java.util.logging.SimpleFormatter.format", "%4$s: %5$s %n");

答案 1 :(得分:0)

可以在配置文件中定义格式。 java.util.logging.SimpleFormatter.format = [%p]%t:%m

其中 讯息%m 级别/严重度%p 线程%t