From 2edc59f1c174d2814e5addb954c49d7a03397683 Mon Sep 17 00:00:00 2001 From: nextdreamblue Date: Wed, 3 Jan 2024 19:02:42 +0800 Subject: [PATCH] [fix](auditloader) support audit table millisecond and fix stmt truncated by '\r' Signed-off-by: nextdreamblue --- .../org/apache/doris/plugin/audit/AuditLoaderPlugin.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/AuditLoaderPlugin.java b/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/AuditLoaderPlugin.java index 3cfb0eeeaee3a5..4c5586ed881331 100755 --- a/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/AuditLoaderPlugin.java +++ b/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/AuditLoaderPlugin.java @@ -57,7 +57,7 @@ public class AuditLoaderPlugin extends Plugin implements AuditPlugin { private final static Logger LOG = LogManager.getLogger(AuditLoaderPlugin.class); - private static final DateTimeFormatter DATETIME_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") + private static final DateTimeFormatter DATETIME_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS") .withZone(ZoneId.systemDefault()); private StringBuilder auditLogBuffer = new StringBuilder(); @@ -180,7 +180,9 @@ private void fillLogBuffer(AuditEvent event, StringBuilder logBuffer) { logBuffer.append(event.peakMemoryBytes).append("\t"); // trim the query to avoid too long // use `getBytes().length` to get real byte length - String stmt = truncateByBytes(event.stmt).replace("\n", " ").replace("\t", " "); + String stmt = truncateByBytes(event.stmt).replace("\n", " ") + .replace("\t", " ") + .replace("\r", " "); LOG.debug("receive audit event with stmt: {}", stmt); logBuffer.append(stmt).append("\n"); } @@ -355,7 +357,7 @@ public void run() { public static String longToTimeString(long timeStamp) { if (timeStamp <= 0L) { - return "1900-01-01 00:00:00"; + return "1900-01-01 00:00:00.000"; } return DATETIME_FORMAT.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(timeStamp), ZoneId.systemDefault())); }