spring boot - Upgrading LogStash Log4j configuration to Log4j2 -


i trying migrate spring boot app log4j log4j 2. understand log4j 2 changed syntax of .properties configurations original log4j.

here snippet of original log4j configuration:

log4j.appender.logstash=org.apache.log4j.net.socketappender log4j.appender.logstash.layout=org.apache.log4j.patternlayout log4j.appender.logstash.layout.conversionpattern=%d{hh:mm:ss.sss} %-5p %c {2} %x - %m%n log4j.appender.logstash.port=4560 log4j.appender.logstash.remotehost=logs.example.com log4j.appender.logstash.reconnectiondelay=10000 

and here updated to, log4j 2:

appender.logstash.type=socketappender # or 'socket' appender.logstash.name=logstash appender.logstash.layout.type=patternlayout appender.logstash.layout.pattern=%d{hh:mm:ss.sss} %-5p %c {2} %x - %m%n appender.logstash.host=logs.example.com appender.logstash.port=4560 appender.logstash.reconnectiondelaymillis=10000 

however, when this, console , file appenders work fine, logstash appender throws broken pipe error.

i've looked seems may need wrap socketappender in asyncappender , pointing ref towards logstash socketappender (as in this documentation), exceptions properties not exist: appender.async.type=async appender.async.ref=logstash # or 'refs', 'appender-ref', etc.

is .properties file not way go async socket appenders? use in migrating log4j 1 2 via properties file.

there problem in older releases of logstash-log4j2. fixed in release 3.2. newer release may taken link.

besides, appender name not socketappender socket - according documentation example, uses name socket in log4j2.xml:

<appenders>     <socket name="socket" host="localhost" port="9500">       <serializedlayout />     </socket> </appenders> 

i suppose should change log4j2.properties accordingly:

appender.logstash.type=socket appender.logstash.name=logstash appender.logstash.layout.type=patternlayout ... 

i know matter of habit , "do-not-change-the-working-code" approach may worth move xml configuration format while migrating log4j2, since vast of examples in documentation using it.


Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -