Log4j no appender not found for log configured in standalone.xml

I am using jboss as 7 offline. I use spring in my application, when I run my application, I get the following error in the server log:

17:40:19,669 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). 17:40:19,671 ERROR [stderr] (http-localhost-127.0.0.1-8080-1) log4j:WARN Please initialize the log4j system properly. 

So, I set up jboss by adding a logger as follows:

  <logger category="org.springframework.core.env.StandardEnvironment"> <level name="DEBUG"/> <handlers> <handler name="CONSOLE"/> <handler name="FILE"/> <handler name="TESTFILE"/> </handlers> </logger> 

The CONSOLE handler is defined as follows:

  <console-handler name="CONSOLE" autoflush="true"> <level name="DEBUG"/> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> </console-handler> 

But even after that I keep getting the same error, why?

Decision:

The invalid part meant that the application should use the logging jboss as (log4j) subsystem located in its modules directory, more precisely in org/apache/log4j . This is done by adding the jboss-deployment-structure.xml file to WEB-INF containing the following:

 <jboss-deployment-structure> <deployment> <dependencies> <module name="org.apache.log4j"/> </dependencies> </deployment> </jboss-deployment-structure> 
+4
source share
1 answer

yo you need to define appender in your configuration:

 <appender name="springFileAppender" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="../logs/spring.log" /> <param name="datePattern" value="yyyy-MM-dd" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{dd-MM-yyyy kk:mm:ss.SSS} %-5p %c %x - %m%n" /> </layout> </appender> 

then link to it from the registrar:

 <logger name="org.springframework.beans" additivity="true"> <level value="info" /> <appender-ref ref="springFileAppender" /> </logger> 

this config will write everything from the Spring Beans module with the INFO threshold in the file .. / logs / spring.log

EDIT: I see you are using log4J with JBOSS!

then you must define a handler (e.g. appender in my example).

Something like this:

  <periodic-rotating-file-handler name="FILE"> <level name="DEBUG"/> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> <file relative-to="jboss.server.log.dir" path="server.log"/> <suffix value=".yyyy-MM-dd"/> <append value="false"/> </periodic-rotating-file-handler> 
0
source

All Articles