Constantino Cronemberger created LOG4J2-1298: ------------------------------------------------
Summary: 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 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.cronember...@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.cronember...@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-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org