Merge branch 'stable-3.6' into stable-3.7
* stable-3.6:
Log publishing of stream events in message_log file
Change-Id: Ic78526a5da11a6ac1b988ecce434988b5888fb0c
diff --git a/src/main/java/com/googlesource/gerrit/plugins/kinesis/KinesisPublisher.java b/src/main/java/com/googlesource/gerrit/plugins/kinesis/KinesisPublisher.java
index 158f8ac..ad5baa5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/kinesis/KinesisPublisher.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/kinesis/KinesisPublisher.java
@@ -41,6 +41,7 @@
private final KinesisProducer kinesisProducer;
private final Configuration configuration;
private final ExecutorService callBackExecutor;
+ private final Log4jKinesisMessageLogger msgLog;
private final Gson gson;
@@ -49,11 +50,13 @@
@EventGson Gson gson,
KinesisProducer kinesisProducer,
Configuration configuration,
- @ProducerCallbackExecutor ExecutorService callBackExecutor) {
+ @ProducerCallbackExecutor ExecutorService callBackExecutor,
+ Log4jKinesisMessageLogger msgLog) {
this.gson = gson;
this.kinesisProducer = kinesisProducer;
this.configuration = configuration;
this.callBackExecutor = callBackExecutor;
+ this.msgLog = msgLog;
}
@Override
@@ -106,6 +109,7 @@
partitionKey,
result.getSequenceNumber(),
result.getAttempts().size());
+ msgLog.log(streamName, stringEvent);
}
@Override
diff --git a/src/main/java/com/googlesource/gerrit/plugins/kinesis/Log4jKinesisMessageLogger.java b/src/main/java/com/googlesource/gerrit/plugins/kinesis/Log4jKinesisMessageLogger.java
new file mode 100644
index 0000000..d5d6372
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/kinesis/Log4jKinesisMessageLogger.java
@@ -0,0 +1,38 @@
+// Copyright (C) 2023 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.googlesource.gerrit.plugins.kinesis;
+
+import com.google.gerrit.extensions.systemstatus.ServerInformation;
+import com.google.gerrit.server.util.PluginLogFile;
+import com.google.gerrit.server.util.SystemLog;
+import com.google.inject.Inject;
+import org.apache.log4j.PatternLayout;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Log4jKinesisMessageLogger extends PluginLogFile {
+ private static final String LOG_NAME = "message_log";
+ private final Logger msgLog;
+
+ @Inject
+ public Log4jKinesisMessageLogger(SystemLog systemLog, ServerInformation serverInfo) {
+ super(systemLog, serverInfo, LOG_NAME, new PatternLayout("[%d{ISO8601}] [%t] %-5p : %m%n"));
+ this.msgLog = LoggerFactory.getLogger(LOG_NAME);
+ }
+
+ public void log(String streamName, String event) {
+ msgLog.info("PUBLISH {} {}", streamName, event);
+ }
+}