Log4net中的调错

本文详细介绍了在使用log4net时遇到的输出到Oracle数据库的问题,包括配置错误、变量名不匹配等常见错误,并提供了解决方法。通过添加调试配置和检查参数定义一致性,有效解决了输出问题。

在使用log4net时,感觉最麻烦的就是配置文件了,为了使用方便,我不得不先准备好一个完整的配置文件方案,测试了输出到文本、控制台、windows事件、SQL Server数据库都没有问题,但输出到oracle就不那么顺利了。 感觉connectionType和connectionString都没有错,但Oracle中没有输出,它是config文件,又不能插入断点调试,真是纠结!

调试方法

其实,强大的log4net本有调试,只不过无知的我不知道怎么用,其实也很简单,在配置文件configuration节点内添加

代码如下:

<appSettings>

<add key="log4net.Internal.Debug" value="true "/>

</appSettings>

很快,我们在输出窗口看到了问题:

排错修改

错误一:ORA-01036: 非法的变量名/编号

解决:即然知道什么了,那就好修改了。经查,ORA-01036: 非法的变量名/编号原因很可能是存储过程的包体的参数定义与包头的定义不一样,很多时候修改了包体,却忘了修改包头。 另外,创建OracleParameter时,由于构造函数的版本众多,使用了某些版本时,可能会出现这个错误,建议创建OracleParameter时,一定要指定OracleType。

直接使用Sql 语句时,在Sql 语句中的 参数部分没有使用冒号作为前缀,或者错误使用了Sql Server 的"@"符号都会导致此错误。总之此错误出现在Parameter指定的ParameterName,与实际参数名称不匹配时。

SqlClient参数表达式:@ParameterName

OracleClient参数表达式::ParameterName

注意Version和 PublicKeyToken和判断方法:

错误二: ERROR [AdoNetAppender] ErrorCode: GenericFailure. Exception while writing to database

解决:缺少bufferSize value="1"

错误三:System.Data.OleDb.OleDbException (0x80040E07): 标准表达式中数据类型不匹配。

解决:输出到Access中时, datetime会转换失败,只设置Access的时间字段为string类型。官网示例中也是使用的string类型。

 

参考链接:

http://logging.apache.org/log4net/release/config-examples.html

 

 

 

转载于:https://www.cnblogs.com/liweis/p/4848846.html

试jQuery代码时,你可以采取以下几种方法来定位和解决问题: 1. **使用浏览器开发者工具**:现代浏览器都提供了强大的开发者工具,如Chrome的开发者工具或Firefox的Firebug。通过这些工具,你可以检查元素、查看控制台输出、监视网络请求和试JavaScript代码。你可以逐步执行代码,查看变量的值,以及在控制台中输出试信息。 2. **使用console.log()**:在代码中添加console.log()语句,将需要试的变量或信息输出到控制台。这样可以帮助你了解代码执行的步骤、变量的值以及是否进入特定的代码块。 3. **检查语法误**:jQuery代码也是JavaScript代码,因此首先要确保没有语法误。浏览器的开发者工具会在控制台中显示语法误信息,帮助你快速定位误所在的行数和文件。 4. **逐步执行和注释代码**:如果遇到问题无法定位,可以尝试逐步执行代码,并注释掉部分代码来确定问题所在。通过逐行执行和排除法,可以缩小问题范围并找到具体引发误的代码。 5. **查阅文档和社区资源**:jQuery有详细的官方文档和广泛的社区资源,你可以查阅官方文档、API参考和使用示例,或在相关的开发者社区寻求帮助。这些资源通常能提供关于jQuery常见问题和解决方案的指导。 6. **利用在线试工具**:有一些在线试工具可以帮助你试jQuery代码,如JSFiddle、CodePen等。你可以将代码复制到这些工具中,并通过输出或试功能来观察代码执行过程和结果。 综上所述,通过浏览器开发者工具、console.log()、逐步执行、注释代码、查阅文档和社区资源,以及利用在线试工具,可以有效地试和解决jQuery代码中的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值