More test info trying to isolate the problem: Task: developing web app project on eclipse 2019 version. main project includes a dependent project (sub-project) on the same eclipse.
Run main app as java app: main app vm parameters include: -Dlog4j.configurationFile, LogManager.getLogger() returns correct logger in main app as well as sub-project code. meaning, Log4j2 messages can print as expected. no error. Run web app on tomcat 9, 8 or 7: For tomcat runtime classpath, eclipse requires to add the sub-project and all the jars needed (include log4j2 jars), otherwise it complains with no class found error. However, after log4j2 jars are added, it throws the above " ERROR StatusLogger Unrecognized format specifier " errors. The web app can run. Log4j2 messages can print in the main app codes. BUT, Logger in the sub-project codes does not print messages because it has error. The cause may be in tomcat or in log4j2, or even eclipse. Any idea? thanks, -aj On Fri, May 8, 2020 at 11:21 AM AJ Chen <ajc...@web2express.org> wrote: > Hi Mark, > I also use log4j2 in my web app. dev in eclipse, when adding the log4j2 > jars to tomcat 7,8, or 9 runtime, it has this problem, log4j2.xml is > provided as VM parameter. Web app firsts instantiates log4j2, and then > tries to config log4j2 again, throwing the following error due to double > class loading: > > ERROR StatusLogger Unrecognized format specifier [d] > ERROR StatusLogger Unrecognized conversion specifier [d] starting at > position 16 in conversion pattern. > ERROR StatusLogger Unrecognized format specifier [thread] > ERROR StatusLogger Unrecognized conversion specifier [thread] starting at > position 25 in conversion pattern. > ERROR StatusLogger Unrecognized format specifier [level] > ERROR StatusLogger Unrecognized conversion specifier [level] starting at > position 35 in conversion pattern. > ERROR StatusLogger Unrecognized format specifier [logger] > ERROR StatusLogger Unrecognized conversion specifier [logger] starting at > position 47 in conversion pattern. > ERROR StatusLogger Unrecognized format specifier [msg] > ERROR StatusLogger Unrecognized conversion specifier [msg] starting at > position 54 in conversion pattern. > ERROR StatusLogger Unrecognized format specifier [n] > ERROR StatusLogger Unrecognized conversion specifier [n] starting at > position 56 in conversion pattern. > ERROR StatusLogger Reconfiguration failed: No configuration found for > '18b4aac2' at 'null' in 'null' > > Please note there is problem in the simple log4j2.xml for testing, which > can be loaded successfully when there is no double class loading. > > -aj > > > On Thu, May 7, 2020 at 1:53 PM Mark Thomas <ma...@apache.org> wrote: > >> On 07/05/2020 21:40, AJ Chen wrote: >> > I use eclipse to develop web app for tomcat, Web app has a dependent >> > project and so the dependent project and all jars are added on the >> > classpath for tomcat runtime. Log4j works on tomcat 6. But after >> upgrate to >> > tomcat 9, log4j failed to start with the following error. Anyone has >> seen >> > similar problem? log4j2 also failed. Thanks. >> >> Note: log4j is no longer supported. >> >> How, exactly, is log4j configured? What JAR files and what configuration >> files are where? Any other configuration? >> >> Mark >> >> >> > >> > log4j:ERROR A "org.apache.log4j.DailyRollingFileAppender" object is not >> > assignable to a "org.apache.log4j.Appender" variable. >> > log4j:ERROR The class "org.apache.log4j.Appender" was loaded by >> > log4j:ERROR [sun.misc.Launcher$AppClassLoader@18b4aac2] whereas object >> of >> > type >> > log4j:ERROR "org.apache.log4j.DailyRollingFileAppender" was loaded by >> > [ParallelWebappClassLoader >> > >> > aj >> > >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> >>