Skip to content

Commit 7af0f90

Browse files
committed
Revert "GH-1148: Revert Log4j Appender Change"
This reverts commit bb83aa7.
1 parent fdda7a9 commit 7af0f90

File tree

1 file changed

+22
-16
lines changed

1 file changed

+22
-16
lines changed

spring-rabbit/src/main/java/org/springframework/amqp/rabbit/log4j2/AmqpAppender.java

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public class AmqpAppender extends AbstractAppender {
126126
/**
127127
* The template.
128128
*/
129-
private final RabbitTemplate rabbitTemplate = new RabbitTemplate();
129+
private RabbitTemplate rabbitTemplate;
130130

131131
/**
132132
* Where LoggingEvents are queued to send.
@@ -250,18 +250,12 @@ public static Builder newBuilder() {
250250
* Submit the required number of senders into the pool.
251251
*/
252252
private void startSenders() {
253-
this.rabbitTemplate.setConnectionFactory(this.manager.connectionFactory);
254253
if (this.manager.async) {
254+
this.manager.senderPool = Executors.newCachedThreadPool();
255255
for (int i = 0; i < this.manager.senderPoolSize; i++) {
256256
this.manager.senderPool.submit(new EventSender());
257257
}
258258
}
259-
else if (this.manager.maxSenderRetries > 0) {
260-
RetryTemplate retryTemplate = new RetryTemplate();
261-
RetryPolicy retryPolicy = new SimpleRetryPolicy(this.manager.maxSenderRetries);
262-
retryTemplate.setRetryPolicy(retryPolicy);
263-
this.rabbitTemplate.setRetryTemplate(retryTemplate);
264-
}
265259
}
266260

267261
@Override
@@ -287,6 +281,22 @@ protected Message postProcessMessageBeforeSend(Message message, Event event) {
287281
}
288282

289283
protected void sendEvent(Event event, Map<?, ?> properties) {
284+
synchronized (this) {
285+
if (this.rabbitTemplate == null) {
286+
if (this.manager.activateOptions()) {
287+
this.rabbitTemplate = new RabbitTemplate(this.manager.connectionFactory);
288+
if (!this.manager.async && this.manager.maxSenderRetries > 0) {
289+
RetryTemplate retryTemplate = new RetryTemplate();
290+
RetryPolicy retryPolicy = new SimpleRetryPolicy(this.manager.maxSenderRetries);
291+
retryTemplate.setRetryPolicy(retryPolicy);
292+
this.rabbitTemplate.setRetryTemplate(retryTemplate);
293+
}
294+
}
295+
else {
296+
throw new AmqpException("Cannot create template");
297+
}
298+
}
299+
}
290300
LogEvent logEvent = event.getEvent();
291301
String name = logEvent.getLoggerName();
292302
Level level = logEvent.getLevel();
@@ -352,7 +362,7 @@ protected void doSend(Event event, LogEvent logEvent, MessageProperties amqpProp
352362
message = new Message(msgBody.toString().getBytes(), amqpProps); //NOSONAR (default charset)
353363
}
354364
message = postProcessMessageBeforeSend(message, event);
355-
this.rabbitTemplate.send(this.manager.exchangeName, routingKey, message);
365+
this.rabbitTemplate.send(this.manager.exchangeName, routingKey, message); // NOSONAR (sync)
356366
}
357367
catch (AmqpException e) {
358368
int retries = event.incrementRetries();
@@ -645,7 +655,7 @@ protected AmqpManager(LoggerContext loggerContext, String name) {
645655
super(loggerContext, name);
646656
}
647657

648-
private boolean activateOptions() {
658+
boolean activateOptions() {
649659
ConnectionFactory rabbitConnectionFactory = createRabbitConnectionFactory();
650660
if (rabbitConnectionFactory != null) {
651661
Assert.state(this.applicationId != null, "applicationId is required");
@@ -667,7 +677,6 @@ private boolean activateOptions() {
667677
this.clientConnectionProperties);
668678
}
669679
setUpExchangeDeclaration();
670-
this.senderPool = Executors.newCachedThreadPool();
671680
return true;
672681
}
673682
return false;
@@ -1182,11 +1191,8 @@ public AmqpAppender build() {
11821191
}
11831192

11841193
AmqpAppender appender = buildInstance(this.name, this.filter, theLayout, this.ignoreExceptions, manager, eventQueue);
1185-
if (manager.activateOptions()) {
1186-
appender.startSenders();
1187-
return appender;
1188-
}
1189-
return null;
1194+
appender.startSenders();
1195+
return appender;
11901196
}
11911197

11921198
/**

0 commit comments

Comments
 (0)