设为首页 收藏本站
查看: 1724|回复: 0

[经验分享] log4net写入DB2备忘 via OLEDB & ODBC

[复制链接]

尚未签到

发表于 2016-11-18 09:58:57 | 显示全部楼层 |阅读模式
  在项目中遇到需要记录操作日志的需求,由于是一个外挂系统,因此不用考虑到公司框架的限制,直接二层架构直连数据库,考虑使用log4net连接DB2。请宽恕我这个非软工科班出身的IT小白,以前一直在知道有个log4net,但在工作中公司有一套自己的框架记履历,一直没有机会接触。这次嘛,正好就这个机会小试身手。
  在这里先简答介绍一下这个外挂系统。很简单,.NET+DB2的配置,两层架构,大致画面都有了,需要切入权限控制和日志系统。工作很顺利的开展了,权限系统嘛小意思,日志方面log4net拿来就用,大不了百度一下嘛。参考百度出来MySql的ODBC配置这里抄抄那里抄抄,这可到好,一运行,傻眼了,不报错,也没写入自己建的表,头疼。
  本着一向的钻研精神,接着直接百度了log4net+DB2+ODBC等等各种关键词的排列组合,无奈,百度上log4net+DB2+ODBC的关键词几乎没有,都是sqlserver、Oracle云云的,崩溃,大家都不用log4net连DB2吗?唯一找到的一篇相关的博文,博主也只是说DB2 V9.7对log4net via ODBC的支持不好,根本连不上:(,好吧~~~~“根本连不上!!!”(后面我的结果证明他是错的哦)。接着小白求助了CSDN的论坛——没回音;想上stackoverflow问问老外,好久不上,google的JS库被墙了,问不出问题——无语。
  就这样小白怀着不爽的心情熬到了今晚。就在小白一边咒骂log4net怎么连不上数据库连个报错都没有,一边断点调试的时候,发现了ConfigurationMessages的一坨履历,上面赫然写着,"找不到System.Data.dll"(大致是这个意思,小白就不在此贴图了)。灵光一闪,有眉目了,将引用中System.Data.dll复制本地设置成true,运行之,成了!
  在此,小白将log4net通过ODBC于OLEDB连接DB2的配置列在下面:
  log4net via ODBC



1 <?xml version="1.0" encoding="utf-8" ?>
2 <configuration>
3   <configSections>
4     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
5   </configSections>
6
7   <log4net debug="true">
8     <root>
9       <level value="INFO"></level>
10       <!--文件记录格式-->
11       <!--<appender-ref ref="rollingFile"/>-->
12       <appender-ref ref="AdoNetAppender_DB2"/>
13     </root>
14
15     <appender name="AdoNetAppender_DB2" type="log4net.Appender.AdoNetAppender,log4net">
16       <bufferSize value="1"/>
17
18        <!--SQL数据源-->
19       <connectionType value="System.Data.Odbc.OdbcConnection, System.Data"/>
20
21        <!--SQL连接字符串-->
22       <connectionString value="Driver={IBM DB2 ODBC DRIVER};Hostname=192.168.44.11;Port=50001;Database=xxx;Uid=xxx;Pwd=xxx;Protocol=TCPIP;" />
23       <commandText value="INSERT INTO xxx VALUES (' ', ' ', ' ', ?, ' ', ' ')"/>
24
25       <parameter>
26         <parameterName value="@log_level" />
27         <dbType value="String" />
28         <size value="50" />
29         <layout type="log4net.Layout.PatternLayout" value="%level" />
30       </parameter>
31     </appender>
32   </log4net>
33 </configuration>
  log4net via OLEDB



1 <?xml version="1.0" encoding="utf-8" ?>
2 <configuration>
3   <configSections>
4     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
5   </configSections>
6
7   <log4net debug="true">
8     <root>
9       <level value="INFO"></level>
10       <!--文件记录格式-->
11       <!--<appender-ref ref="rollingFile"/>-->
12       <appender-ref ref="AdoNetAppender_DB2"/>
13     </root>
14     <appender name="AdoNetAppender_DB2" type="log4net.Appender.AdoNetAppender,log4net">
15       <bufferSize value="1" />
16       <connectionType value="System.Data.OleDb.OleDbConnection, System.Data" />
17       <connectionString value="Provider=IBMDADB2;Hostname=192.168.44.11;Port=50001;UID=xxxx;PWD=xxx;Database=xxx;Protocol=TCPIP;" />
18       <commandText value="INSERT INTO xxx VALUES (' ', ' ', ' ', ?, ' ', ' ')" />
19       <parameter>
20         <parameterName value="@message" />
21         <dbType value="String" />
22         <size value="4000" />
23         <layout type="log4net.Layout.PatternLayout">
24           <conversionPattern value="%message" />
25         </layout>
26       </parameter>
27     </appender>
28   </log4net>
29 </configuration>
  最后,再贴一张如何检查log4net错误的断点视图,以后可以找到从哪查错咯:
DSC0000.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-301999-1-1.html 上篇帖子: db2 基本命令和变量 下篇帖子: 处理 DB2 数据 SQL 过程和用户定义的函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表