In addition to configuring Log4j through configuration files in formats such as properties and XML, Log4j also provides various interfaces that allow you to dynamically modify Log4j configuration using code, such as adding an appender to a logger. The method is straightforward: create a new appender and add it to the logger. Here is a sample code:

1
2
3
4
5
6
7
8
9
KafkaLog4jAppender kafkaAppender = new KafkaLog4jAppender();
kafkaAppender.setBrokerList(broker);
kafkaAppender.setTopic(topic);
kafkaAppender.setCompressionType("gzip");
kafkaAppender.setSyncSend(false);
kafkaAppender.setLayout(new PatternLayout(layout));
kafkaAppender.activateOptions();
logger.addAppender(kafkaAppender);
logger.setLevel(Level.INFO);

This example uses a KafkaAppender, but other appenders such as DailyRollingFileAppender work in a similar way.


Source: https://lichuanyang.top/en/posts/42764/