Log4net中的调错

在使用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

时间: 2024-09-29 08:32:23

Log4net中的调错的相关文章

菜鸟调错(四)——Spring与DWR集成,配置文件报错

背景简介: 该项目是市信用办的一个系统,之前好像是一个石家庄的公司负责的.我属于是半路接手.拿到源码后,根据他们给的简(shao)单(de)明(ke)了(lian)的说明把项目搭起来.结果可想而知,项目文件一片红.于是就开始解决这些错误,好在很多错误都是类似的.经过一番捣鼓,大部分的错误都解决了,有一个Spring跟DWR集成配置的错误,错误信息如下: Multiple annotations found at this line: - schema_reference.4: Failed to

Java入门到精通——调错篇之Spring2.5利用aspect实现AOP时报错: error at ::0 can&#39;t find referenced pointcut XXX

一.问题描述及原因. 利用Aspect注解实现AOP的时候出现了error at ::0 can't find referenced pointcut XXX.一看我以为注解写错了,结果通过查询相关资料是因为Spring2.5与中的aspectjweaver.jar 和aspectjrt.jar这两个jar包与JDK1.7不匹配. org.springframework.beans.factory.BeanCreationException: Error creating bean with n

IE对象最后一个属性后不要加逗号,否则在IE7及以下版本中会报错

某函数返回一个对象,如果在最后一个属性后加逗号,IE7及以下版本中会报错 正确代码: return{ top:rect.top-top, bottom:rect.bottom-top, left:rect.left-left, right:rect.right-left } 错误代码(IE8以上都不会报错) return{ top:rect.top-top, bottom:rect.bottom-top, left:rect.left-left, right:rect.right-left, }

关于SimpleCursorAdapter在sqlite数据库中取数据报错 : java.lang.IllegalArgumentException: column &#39;_id&#39; does not exist

_id列不存在 需要创建一个 id列 因为SQLlite数据库 的onCreate方法是在数据库不存在的时候才调用所以我们需要清除一下这个app 的数据 将数据清空 关于SimpleCursorAdapter在sqlite数据库中取数据报错 : java.lang.IllegalArgumentException: column '_id' does not exist

Log4net中的RollingFileAppender z

Log4日志组件的应用确实简单实用,在比较了企业库和Log4的日志功能后,个人觉得Log4的功能更加强大点.补充说明下,我使用的企业库是2.0版本,Log4net是1.2.1版本的. 在Log4net的应用上,已经有人做了说明分析了,在本文中,主要解析下Log4net中的RollingFileAppender的应用. 主要参考了Log4net的帮助文档.在项目中的log4net-1.2.10/doc文件下有. RollingFileAppender主要是基于FileAppender构建的,很多属

maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener

本篇文章主要介绍了"maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener ",主要涉及到maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener 方面的内容,对于maven web 项目中启动报错jav

Sass for循环中编译%时报错解决方案

sass功能强大,特别是支持for循环,节省大量开发时间,但是在开发时遇到一个问题,直接使用%时没有问题,当有变量时再加% 单位在编译时报错: 这样没有问题: @for $width from 0 to 10{ .wp#{$width}{ width:$width px; } } 但是这样就有问题了: @for $width from 0 to 10{ .wp#{$width}{ width:$width%; } } 或者这样: @for $width from 0 to 10{ .wp#{$w

VC中编译报错:error C2011: &#39;fd_set&#39; : &#39;struct&#39; type redefinition

这是头文件包含顺序的问题,原因与解决办法见下面代码的注释. /* 包含下面这两个头文件时,必须把winsock2.h放在前面 否则编译报错,N多的重定义错误:例如 error C2011: 'fd_set' : 'struct' type redefinition */ #include <WinSock2.h> #include <Windows.h> int main(int argc, _TCHAR* argv[]) { Sleep(1); return 0; } 其实可以不

node 中 npm报错 Error: ENOENT, stat &#39;C:\Users\Administrator\AppData\Roaming\npm&#39;

今天在看node书本时,安装express,看看里面的包.没想到出现这样一种情况. 报错了.后来思考了一下,可能是修改了node的默认安装路径.于是准备在出错的路径下建一个npm文件夹. 注意,有个时候会出现找不到AppData文件夹.看图: 看到这张图时大家应该明白了.因为这张图是隐藏起来的.大家要把他显示出来.至于如何在win7下显示文件夹,就不在这罗嗦了. 完成npm文件夹的创建后: 安装express试试: 看到下面那么一大坨东西,相信大家已经知道express暗转成功了. 在看看有没有