2011-01-19 99 views
2

Log4Net无法加载用于DB2连接的appender,我看不出为什么。它将日志写入文件系统,但是,DB2日志记录没有发生。 Log4Net的版本是v1.2.10.0Log4Net Appender不加载

<log4net> 
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
    <bufferSize value="100" /> 
    <connectionType value="IBM.Data.DB2.DB2Connection,IBM.Data.DB2, Version=8.1.2.1" /> 
    <connectionString value="server=db2Server;database=dbName;user Id=userId1;password=password;persist security info=true" /> 
    <commandText value="INSERT INTO GOSDDL.EXCEPTION_LOG (APP_LOG_TS,THREAD,LEVEL,LOGGER,MESSAGE,EXCEPTION) VALUES (@log_date,@thread,@log_level,@logger,@message,@exception)" /> 
    <parameter> 
     <parameterName value="@log_date" /> 
     <dbType value="DateTime" /> 
     <layout type="log4net.Layout.RawTimeStampLayout"> 
     <conversionPattern value="%utcdate" /> 
     </layout> 
    </parameter> 
    <parameter> 
     <parameterName value="@thread" /> 
     <dbType value="String" /> 
     <size value="255" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%thread" /> 
     </layout> 
    </parameter> 
    <parameter> 
     <parameterName value="@log_level" /> 
     <dbType value="String" /> 
     <size value="50" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%level" /> 
     </layout> 
    </parameter> 
    <parameter> 
     <parameterName value="@logger" /> 
     <dbType value="String" /> 
     <size value="255" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%logger" /> 
     </layout> 
    </parameter> 
    <parameter> 
     <parameterName value="@message" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%message" /> 
     </layout> 
    </parameter> 
    <parameter> 
     <parameterName value="@exception" /> 
     <dbType value="String" /> 
     <size value="2000" /> 
     <layout type="log4net.Layout.ExceptionLayout" /> 
    </parameter> 
    </appender> 

    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 
    <file value="../logs" /> 
    <appendToFile value="true"/> 
    <maximumFileSize value="512KB"/> 
    <maxSizeRollBackups value="2"/> 
    <rollingStyle value="Date"/> 
    <datePattern value=".yyyy-MM-dd.lo" /> 
    <staticLogFileName value="false" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%d %l %-2p - %m%n"/> 
    </layout> 
    <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="INFO"/> 
     <levelMax value="FATAL"/> 
    </filter> 
    </appender> 

    <root> 
    <level value="INFO"/> 
    <appender-ref ref="RollingFile"/> 
    </root> 
</log4net> 
+0

尝试在log4net中启用内部调试,并查看是否可以找到任何可疑内容。请参阅http://logging.apache.org/log4net/release/faq.html部分“如何启用log4net内部调试?” – 2011-01-19 18:31:49

+0

谢谢安德烈亚斯。我确实启用了这个,这是我发现该appender没有被拾起。它似乎没有认识到我试图添加的appender。不知道为什么,这是我的问题。当我只有DB值的日志记录时,它声明“log4net:Logger:没有appender可以被发现logger [System.Exception]存储库[log4net-default-repository]” – Nic 2011-01-19 20:26:55

回答

3

在指出明显的风险时,您发布的配置文件实际上并不使用AdoNetAppender。这是否会在第二行中用AdoNetAppender取代RollingFile?

如果不是,您可以发布配置文件的其余部分。