[
https://issues.apache.org/jira/browse/LOG4J2-3046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17304260#comment-17304260
]
Ralph Goers commented on LOG4J2-3046:
-------------------------------------
If you add the KeyValuePair to the JSONLayout then that attribute will be
included in the JSON sent to the server side. On the server side you could
modify the server to convert the JSON into a Map<String, Object> or create a
custom Object that matches the JSON. I am assuming you are using the
log4j-server from logging-log4j-tools. As I believe I have mentioned, in its
current form that is meant to be a sample, not a final deliverable, which is
why it has never been released. You are expected to have to modify it to meet
your needs.
> Socket Appender: retrieve variables from the client to the socket server
> ------------------------------------------------------------------------
>
> Key: LOG4J2-3046
> URL: https://issues.apache.org/jira/browse/LOG4J2-3046
> Project: Log4j 2
> Issue Type: Question
> Components: Appenders
> Environment: maven
> java 8
> Reporter: Mykola Holovach
> Priority: Major
>
> My listener log4j2.xml configuartion, in the PatternLayout section i'm tried
> %X\{application} and ${application}
> {code:java}
> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config">
> <Appenders>
> <RollingRandomAccessFile name="ERROR_FILE" bufferSize="1024"
> bufferedIO="true" append="true"
> fileName="${LOGS_HOME}/logfinal-error-${HOST_NAME_SHORT}.log"
>
> filePattern="${LOGS_HOME}/logfinal-error-${HOST_NAME_SHORT}.log.%d{yyyy-MM-dd}">
> <ThresholdFilter level="warn" />
> <PatternLayout pattern="%d{DEFAULT} %-5p %t %c %X{application}
> %x - %m%n" />
> <Policies>
> <TimeBasedTriggeringPolicy interval="1"/>
> </Policies>
> </RollingRandomAccessFile> <RollingRandomAccessFile
> name="DEBUG_FILE" bufferSize="32768" bufferedIO="true" append="true"
> fileName="${LOGS_HOME}/logfinal-debug-${HOST_NAME_SHORT}.log"
>
> filePattern="${LOGS_HOME}/logfinal-debug-${HOST_NAME_SHORT}.log.%d{yyyy-MM-dd}">
> <ThresholdFilter level="debug" />
> <PatternLayout pattern="%d{DEFAULT} %-5p %t %c ${application}
> %x - %m%n" />
> <Policies>
> <TimeBasedTriggeringPolicy interval="1"/>
> </Policies>
> </RollingRandomAccessFile> <Async name="ASYNC" bufferSize="64">
> <AppenderRef ref="ERROR_FILE" />
> <AppenderRef ref="DEBUG_FILE" />
> </Async>
> </Appenders> <Loggers>
> <Logger name="ua" level="debug" />
> <Logger name="ua.cetelem.DossierAnalyser" level="info" />
> <Logger name="ua.cetelem.dbaccess.DbAccess" level="info" />
> <Logger name="com.usb" level="debug" />
> <Logger name="jacorb" level="info"/>
> <Logger name="org.owasp" level="trace"/>
> <Root level="info">
> <AppenderRef ref="ASYNC"/>
> </Root>
> </Loggers></Configuration>
> {code}
>
> My client log4j2.xml configuartion, in the <Loggers> section i'm added
> <Property name="application">app_name</Property>
> {code:java}
> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config">
> <Appenders>
> <Socket name="logfinal" host="localhost" port="1101">
> <JSONLayout/>
> </Socket> <RollingFile name="ERROR_FILE"
>
> fileName="build/${sys:LOG4J_APP_NAME:-}-error-${HOST_NAME_SHORT}.log"
>
> filePattern="build/${sys:LOG4J_APP_NAME:-}-error-${HOST_NAME_SHORT}.log.%d{yyyy-MM-dd}">
> <ThresholdFilter level="warn" />
> <PatternLayout
> pattern="%d{DEFAULT} %-5p %t %c %x - %m%n" />
> <Policies>
> <TimeBasedTriggeringPolicy interval="1" />
> </Policies>
> </RollingFile> <RollingFile name="DEBUG_FILE"
>
> fileName="build/${sys:LOG4J_APP_NAME:-}-debug-${env:NAME_SHORT}.log"
>
> filePattern="build/${sys:LOG4J_APP_NAME:-}-debug-${env:NAME_SHORT}.log.%d{yyyy-MM-dd}">
> <ThresholdFilter level="debug" />
> <PatternLayout
> pattern="%d{DEFAULT} %-5p %t %c %x - %m%n" />
> <Policies>
> <TimeBasedTriggeringPolicy interval="1" />
> </Policies>
> </RollingFile>
>
> <Async name="ASYNC" bufferSize="64">
> <AppenderRef ref="ERROR_FILE" />
> <AppenderRef ref="DEBUG_FILE" />
> <AppenderRef ref="logfinal" />
> </Async>
>
> </Appenders> <Loggers>
> <Logger name="org.hibernate.tool.hbm2ddl" level="DEBUG" />
> <Logger name="org.hibernate.SQL" level="INFO" />
> <Logger name="ua.cetelem" level="debug" />
> <Root level="info">
> <Property name="application">app_name</Property>
> <AppenderRef ref="ASYNC" />
> </Root>
> </Loggers>
> </Configuration>
> {code}
> I'm trying to get application name of the client sending each event, but it's
> doesn't work for me, i'm tried different ways, no luck, please help me to
> resolve this problem. Thanks in advance!
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)