【问题标题】:Log4j : How do I lookup the datasource in log4jconf.xmlLog4j:如何在 log4jconf.xml 中查找数据源
【发布时间】:2014-08-18 12:31:17
【问题描述】:

我正在使用 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>

【问题讨论】:

    标签: log4j appender


    【解决方案1】:

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

    <!-- 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>
    

    【讨论】:

      猜你喜欢
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多