1

У меня есть приложение, в котором работает обычное журналирование текстовых файлов. теперь мне также необходимо войти в базу данных mysql. Но ничего не произошло после моих записей в журнале кода. Моя конфигурация log4net являетсяlog4net Запись в Mysql не работает в моем приложении .net 3.5

<?xml version="1.0" encoding="utf-8" ?> 
<log4net> 
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
    <immediateFlush value="true" /> 
    <bufferSize value="1" /> 
    <connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    <connectionString value="data source=localhost;initial catalog=mytestdb;User ID=root;Password=" /> 
    <commandText value="INSERT INTO system_log(thread,level,appname,message,action) VALUES (?thread, ?level, ?appname, ?message, ?action)" /> 
    <parameter> 
     <parameterName value="thread" /> 
     <dbType value="String" /> 
     <size value="100" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%t" /> 
     </layout> 
    </parameter> 
    <parameter> 
     <parameterName value="level" /> 
     <dbType value="String" /> 
     <size value="10" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%p" /> 
     </layout> 
    </parameter> 
    <parameter> 
     <parameterName value="appname" /> 
     <dbType value="String" /> 
     <size value="10" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="My Web Service" /> 
     </layout> 
    </parameter> 
    <parameter> 
     <parameterName value="message" /> 
     <dbType value="String" /> 
     <size value="4000" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%m" /> 
     </layout> 
    </parameter> 
    <parameter> 
     <parameterName value="action" /> 
     <dbType value="String" /> 
     <size value="45" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%5c{1}.%M" /> 
     </layout> 
    </parameter> 
    <filter type="log4net.Filter.LevelRangeFilter"> 
     <acceptOnMatch value="true" /> 
     <levelMin value="DEBUG" /> 
     <levelMax value="FATAL" /> 
    </filter> 
    </appender> 
    <!--<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender" > 
    <file value="..\\Logs.txt" /> 
    <appendToFile value="true" /> 
    <datePattern value="yyyyMMdd" /> 
    <rollingStyle value="Date" /> 
    <filter type="log4net.Filter.LevelRangeFilter"> 
     <acceptOnMatch value="true" /> 
     <levelMin value="DEBUG" /> 
     <levelMax value="FATAL" /> 
    </filter> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%d{yyyy-MM-dd HH:mm:ss.fff} %10p %-5property{_App} %-5property{_Node} [%2t] %5c{1}.%M - %m%n" /> 
    </layout> 
    </appender>--> 
    <root> 
    <level value="ALL" />  
    <!--<appender-ref ref="RollingLogFileAppender" />--> 
    <appender-ref ref="AdoNetAppender" /> 
    </root> 
</log4net> 
+0

Он заканчивает неправильную конфигурацию. Я должен установить bufferSize = 0 и commanttext как

ответ

0

В текущей конфигурации BufferSize был первоначально установлен на 100 .. Так что я должен установить его в 0 или 1, так что log4net немедленно отправить сообщение.

<bufferSize value="0" /> 

Вторая Проблема была я использовал commandparamter в неправильном я поставил его

<commandText value="INSERT INTO system_log(thread_id,level,appname,message,action) VALUES (@threadParam,@levelParam,@appnameParam,@messageParam,@actionParam);" /> 

, который работает