log4net写出到数据库的配置(win form应用程序):
1.写log4net.config配置文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net debug='true'>
<!--debug是log4net的一个属性,开启后会将debug信息输出到console,对排错有极大帮助,详见http://www.cnblogs.com/zhangchenliang/p/4546352.html,尝试过http://www.cnblogs.com/hantianwei/p/4131059.html里的方法以失败而告终-->
<logger name="OpLogger">
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="OpAppender" />
</logger>
<appender name="LogXmlFileAppender" type="log4net.Appender.RollingFileAppender">
...
</appender>
<root>
<level value="ERROR" />...
</root>
</moostlog4net>
</configuration>
2. new global logger:
public static ILogger OpLogger = loggerFactory.GetLogger("log4net", "OpLogger");//构建过程被封装了,只要Oplogger跟配置文件里的logger name对应上就行
3. 记日志:先新建一个message object,再用global logger写进数据库
Moost.Log.Message.OpLogMessage op = new Moost.Log.Message.OpLogMessage("level", "userID", "datetime", "action-delete", "message", actionObject);
OpLogger .Info(op);
但是。。。
日志能写出到文件,就是写不进数据库,排错:
1. debug属性设为true,设了之后看到console错误信息,方向一下就清晰明了了,盲调了一下午不及debug开开5分钟。。。
2. 错误信息:“未能加载文件或程序集“System.Data.OracleClient”。。。参考http://blog.163.com/y_p_xu/blog/static/170857102201121852627675/,改了version和publickeytoken就好了,从这个路径找的是对的,尝试过其他方法失败。。。
3. 数据库connection string多写了个provider...
4. insert语句字段写错了...
5. ORA-01036: illegal variable name/number貌似是因为冒号前面多了空格