logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "gaurav9822@gmail.com"<gaurav9...@gmail.com>
Subject Re: Null pointer error when writing MapMessage key's value to database
Date Tue, 10 Oct 2017 06:42:55 GMT


On 2017-10-06 20:32, Gary Gregory <garydgregory@gmail.com> wrote: 
> Hi,
> 
> I think you will get better help if you provide a reproducible JUnit test
> case or program, on GitHub for example.
> 
> Whenever you mention an Error or Exception, you should copy it in your
> message.
> 
> Gary
> 
> On Fri, Oct 6, 2017 at 8:48 AM, gaurav9822@gmail.com <gaurav9822@gmail.com>
> wrote:
> 
> > Hi log4j2 users,
> >
> > I have created a MapMessage with a key-value pair
> >
> > e.g. userName="log4j"
> >
> > I have configured JDBCAppender with
> >
> > <Column name="userName" pattern="%K{userName}"/>
> >
> > But, it gives null pointer error when tried to insert into database table
> > using %K/%map/%MAP
> > and works when you put normal message/literal string.
> >
> > Note:
> > 'userName' is same for Column-name, pattern and MapMessage-key as well.
> > Using log4j version 2.9.0
> >
> > Please help,
> >
> > Thanks,
> > Gaurav
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> > For additional commands, e-mail: log4j-user-help@logging.apache.org
> >
> >
> 1)	Test.java

package com.test;

import org.apache.logging.log4j.*;
import org.apache.logging.log4j.message.MapMessage;
import java.util.*;

public class Test {

  public static void main(String[] args) {
    dbLog();
  }

  public static void dbLog() {
    Logger logger = LogManager.getLogger("dbLogger");

    Map<String, String> myMap = new HashMap<>();
    myMap.put("username", "123456");
    logger.error(new MapMessage(myMap));
  }
}

2)	log4j2.xml

<Configuration status="info" name="myConfig">
    <Appenders>
        <JDBC name="databaseAppender" tableName="temp">
            <ConnectionFactory class="com.database.ConnectionFactory" method="getDatabaseConnection"/>
            <Column name="username" pattern="%K{username}"/>
        </JDBC>
    </Appenders>
    <Loggers>
        <Logger name="dbLogger" level="error" additivity="false">
            <AppenderRef ref="databaseAppender"/>
        </Logger>

        <Root level="ERROR">
            <AppenderRef ref="Console1"/>
        </Root>
    </Loggers>
</Configuration>


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Mime
View raw message