首页> C#> log4net AdoNetAppender在数据库中插入“ Null”字符串,而不是null
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了首页> C#> log4net AdoNetAppender在数据库中插入“ Null”字符串,而不是null,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1900字,纯文字阅读大概需要3分钟。
内容图文
我在.net 3.5应用程序上登录了log4net.日志正在插入数据库.我遇到的一个问题是,对于我未设置数据的数据库,它会插入“ NULL”而不是数据库null.
我的配置是
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<immediateFlush value="true" />
<bufferSize value="0" />
<connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
<connectionString value="data source=localhost;initial catalog=logging_db;User ID=root;Password=" />
<commandText value="INSERT INTO system_log(appname, action,context_id)
VALUES (@appname, @action, @context_id);" />
<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="action" />
<dbType value="String" />
<size value="45" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%5c{1}.%M" />
</layout>
</parameter>
<parameter>
<parameterName value="context_id" />
<dbType value="String" />
<size value="48" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{context_id}" />
</layout>
</parameter>
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="true" />
<levelMin value="DEBUG" />
<levelMax value="FATAL" />
</filter>
</appender>
在某些方法中,我在方法中将context_id设置为
log4net.LogicalThreadContext.Properties["context_id"] = "My context";
它在我提供的位置很好插入,但在我未设置的地方错误地插入了它.
我还检查了https://issues.apache.org/jira/browse/LOG4NET-28处的问题,但将其标记为已解决
解决方法:
您可以更改INSERT INTO语句以检查“ NULL”字符串并将其替换为DB空值,其想法是从here开始
所以它看起来像这样:
INSERT INTO system_log(appname, action,context_id) VALUES (@appname, @action, CASE WHEN @context_id = 'NULL' THEN NULL ELSE @context_id END );"
更新
要改用存储过程,只需替换如下语句:
exec YourStoredProcedure @appname, @action, @context_id
内容总结
以上是互联网集市为您收集整理的首页> C#> log4net AdoNetAppender在数据库中插入“ Null”字符串,而不是null全部内容,希望文章能够帮你解决首页> C#> log4net AdoNetAppender在数据库中插入“ Null”字符串,而不是null所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。