You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Matt Sicker (JIRA)" <ji...@apache.org> on 2016/03/03 02:58:37 UTC

[jira] [Resolved] (LOG4J2-1298) NumberFormatException when using log4j-jul

     [ https://issues.apache.org/jira/browse/LOG4J2-1298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matt Sicker resolved LOG4J2-1298.
---------------------------------
       Resolution: Duplicate
    Fix Version/s: 2.6

This is indeed a duplicate of LOG4J2-1251 as can be confirmed in {{BracketInNotInterpolatedMessageTest.noInterpolation()}}.

> NumberFormatException when using log4j-jul
> ------------------------------------------
>
>                 Key: LOG4J2-1298
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1298
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: JUL adapter
>    Affects Versions: 2.5
>            Reporter: Constantino Cronemberger
>            Priority: Critical
>             Fix For: 2.6
>
>
> I am using CXF to provide REST services and it generates logs using JUL. I wanted to redirect the output of those logs to Log4j2 because I am already using it in my application.
> I managed to create a test case that replicates the problem:
> The JVM is started with:
> -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
> This is the code, based on CXF code (which works with JUL):
> String message = "Inbound Message\n" +
>         "----------------------------\n" +
>         "ID: 5\n" +
>         "Address: https://localhost:8443/admin-api/rest/client/users\n" +
>         "Encoding: ISO-8859-1\n" +
>         "Http-Method: POST\n" +
>         "Content-Type: application/json\n" +
>         "Headers: {Accept=[application/json], adminuser=[constantino.cronemberger@xyz.com], Authorization=[Basic dGVzdC1hcHA6UGFzc3dvcmRAMTIz], cache-control=[no-cache], connection=[keep-alive], Content-Length=[216], content-type=[application/json], host=[localhost:8443], pragma=[no-cache], user-agent=[Apache CXF 3.1.5]}\n" +
>         "Payload: {\"email\":\"constantino.cronemberger@xyz.com\",\"firstName\":\"Constantino\",\"lastName\":\"Cronemberger\",\"phone\":\"+11 11 1111-1111\",\"source\":\"INTERNAL_STORAGE\",\"phone2\":null,\"fax\":null,\"address\":null,\"status\":\"A\",\"clientId\":2}\n" +
>         "--------------------------------------";
> java.util.logging.Logger logger = java.util.logging.Logger.getLogger("test123");
> LogRecord lr = new LogRecord(Level.INFO, message);
> lr.setSourceClassName(logger.getName());
> lr.setSourceMethodName(null);
> lr.setLoggerName(logger.getName());
> logger.log(lr);
> And this is the exception:
> 2016-02-23 14:24:27,663 main ERROR An exception occurred processing Appender appLog java.lang.IllegalArgumentException: can't parse argument number: Accept=[application/json]
>                 at java.text.MessageFormat.makeFormat(MessageFormat.java:1429)
>                 at java.text.MessageFormat.applyPattern(MessageFormat.java:479)
>                 at java.text.MessageFormat.<init>(MessageFormat.java:362)
>                 at java.text.MessageFormat.format(MessageFormat.java:840)
>                 at org.apache.logging.log4j.message.MessageFormatMessage.formatMessage(MessageFormatMessage.java:94)
>                 at org.apache.logging.log4j.message.MessageFormatMessage.getFormattedMessage(MessageFormatMessage.java:66)
>                 at org.apache.logging.log4j.core.pattern.MessagePatternConverter.format(MessagePatternConverter.java:68)
>                 at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36)
>                 at org.apache.logging.log4j.core.layout.PatternLayout$PatternSerializer.toSerializable(PatternLayout.java:292)
>                 at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:206)
>                 at org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:56)
>                 at org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:148)
>                 at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:112)
>                 at org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:88)
>                 at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:152)
>                 at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:125)
>                 at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:116)
>                 at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
>                 at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:390)
>                 at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:378)
>                 at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:362)
>                 at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:352)
>                 at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
>                 at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:147)
>                 at org.apache.logging.log4j.spi.ExtendedLoggerWrapper.logMessage(ExtendedLoggerWrapper.java:135)
>                 at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:933)
>                 at org.apache.logging.log4j.jul.ApiLogger.log(ApiLogger.java:61)
>                 at com.xyz.api.server.dao.LoggingTest.realTest(LoggingTest.java:74)
>                 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>                 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>                 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>                 at java.lang.reflect.Method.invoke(Method.java:497)
>                 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
>                 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
>                 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
>                 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
>                 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>                 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
>                 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
>                 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>                 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>                 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>                 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>                 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>                 at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>                 at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
>                 at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
>                 at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
>                 at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
>                 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>                 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>                 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>                 at java.lang.reflect.Method.invoke(Method.java:497)
>                 at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
> Caused by: java.lang.NumberFormatException: For input string: "Accept=[application/json]"
>                 at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
>                 at java.lang.Integer.parseInt(Integer.java:580)
>                 at java.lang.Integer.parseInt(Integer.java:615)
>                 at java.text.MessageFormat.makeFormat(MessageFormat.java:1427)
>                 ... 53 more



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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