我想更改日志格式。
我所拥有的:
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);
}
}
这是我要更改的课程。
答案 0 :(得分:0)
这完全取决于您使用的日志记录框架。例如:
如果仅使用System.out.println()
,就像更改打印字符串一样简单
如果使用的是Logback,则可以定义扩展LayoutBase<ILoggingEvent>
的自定义布局类,并将其设置在布局xml文件中。
通常,请查找所使用的日志记录框架的文档,或在问题中提供此信息。
答案 1 :(得分:0)
解决问题的最佳方法是创建一个扩展Formatter并创建自己的格式的类。这对我有用:
private static final DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
public String format(LogRecord record) {
StringBuilder builder = new StringBuilder(1000);
builder.append(df.format(new Date(record.getMillis()))).append(" - ");
builder.append("[").append(record.getLevel()).append("] : ");
builder.append(formatMessage(record));
builder.append("\n");
return builder.toString();
}
public String getHead(Handler h) {
return super.getHead(h);
}
public String getTail(Handler h) {
return super.getTail(h);
}