java - 使用新类更改 Java 中的日志记录格式
问题描述
我想更改我的日志格式。
是)我有的:
Jul 23, 2019 10:17:02 PM myclass log INFO: message
我想要的是:
Jul 23, 2019 10:17:02 INFO: message
我该怎么做,你能帮帮我吗?
public class AIVLogger {
private static Logger logger = Logger.getLogger(AIVLogger.class.getName());
private static FileHandler fh = null;
private static String logFolder = System.getProperty("user.dir") + File.separator + "Configuration_Data" + File.separator + "log";
private static String logFile = logFolder + File.separator + "logger";
public static void initialize() {
try {
new File(logFolder).mkdirs();
fh = new FileHandler(logFile + "_" + GenericFuncs.getTimeNowFileName() + ".txt", false);
} catch (SecurityException e) {
AIVLogger.log(e.getMessage());
} catch (IOException e) {
AIVLogger.log(e.getMessage());
}
fh.setFormatter(new SimpleFormatter());
logger.addHandler(fh);
logger.setLevel(Level.ALL);
}
public static Logger getInstance() {
return logger;
}
public static void log(String logMessage) {
//logger.log(logger.getLevel(), logMessage);
Level x = logger.getLevel();
logger.log(x, logMessage);
}
}
这是我想要改变的课程。
解决方案
这完全取决于您使用的日志框架。例如:
如果您只是使用
System.out.println()
它就像更改您打印的字符串一样简单如果您使用 Logback,您可以定义扩展的自定义布局类,
LayoutBase<ILoggingEvent>
并将其设置在您的布局 xml 文件中。
通常,查找您正在使用的日志框架的文档,或在问题中提供此信息。
推荐阅读
- javascript - 使用 div 更改 Active Slick Carousel
- c# - 传送工作时移动系统不工作,移动工作时传送不工作
- ros - 错误:无法启动类型 [msf_updates/pose_sensor] 的节点:无法在包 [msf_updates] 中找到节点 [pose_sensor]
- c# - 将带有未知标头的 csv 反序列化为列表或数组
- gitlab - 如何重置/清理 GitLab 存储库
- c# - Blender 到 Unity 动画 - 跳帧
- reactjs - React:如何根据日期过滤事件
- reactjs - MUI - 如何在 JS 中使用 CSS 设置滚动条的样式?
- android - 无法将 Admin SDK 同步到 Build.Gradle 文件
- r - 卸载某些包时遇到问题