Log4j:如何在log4jconf.xml中查找数据源

时间:2014-08-18 12:31:18

标签: log4j appender

我正在使用weblogic进行应用程序部署,我创建了一个带有jndi名称" MyDataSource"的数据源。当我尝试在我的log4j配置中使用它时,它无法正常工作

<appender name="myDbAppender" class="org.apache.log4j.jdbc.JDBCAppender">
  <param name="jndiName" value="MyDataSource"/>     
<layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="INSERT INTO LOGGING (user_id,  
        correlation_id, first_name, last_name, event_name, role, 
        status, access_level, message, logger, loglevel) 
        VALUES ( '%X{USER_ID}', '%X{CORRELATION_ID}', '%X{FIRST_NAME}',
        '%X{LAST_NAME}','%X{EVENT_NAME}','%X{ROLE}','%X{STATUS}','%X     
       {ACCESS_LEVEL}',
         '%m' , '%X{LOGGER}','%p' )"/>
</layout>
</appender>

1 个答案:

答案 0 :(得分:0)

如果要使用此功能,则需要添加Apache Extras for Apache log4j的jar文件并使用类org.apache.log4j.DBAppender。 e.g:

<!-- console -->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.SimpleLayout" />
</appender>

<!-- db -->
<appender name="DBOUT" class="org.apache.log4j.DBAppender">
    <connectionSource class="org.apache.log4j.receivers.db.JNDIConnectionSource">
        <param name="jndiLocation" value="java:/comp/env/jdbc/MySQLDS" />
    </connectionSource>
</appender>

<!-- root -->
<root>
    <priority value="ALL" />
    <appender-ref ref="STDOUT" />
    <appender-ref ref="DBOUT" />
</root>