首页 新闻 搜索 专区 学院

log4net 为何代码我写的不错 为啥就是导不进SQl里呢 郁闷了一下午 txt文件就可以 代码如下:

0
悬赏园豆:50 [已解决问题] 解决于 2014-01-09 13:30

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>


  <!--log4写日志-->
  <log4net>
    <!--文本日志配置-->
    <appender name="FileLogConfig" type="log4net.Appender.RollingFileAppender,log4net" >
      <param name="File" value="./Log/" />
      <param name="AppendToFile" value="true" />
      <param name="RollingStyle" value="Date" />
      <param name="DatePattern" value="yyyy&quot;\\&quot;yyyy-MM-dd&quot;.log&quot;" />
      <param name="StaticLogFileName" value="false" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <!--时间,线程ID,日志级别,日志对象名称,行号,内容-->
        <param name="ConversionPattern" value="%date [%thread] %-5p %class {%line} - %m%n--%property{Operand}--%date{yyyy'-'MM'-'dd HH':'mm':'ss}" />
        <param name="Header" value="&#13;&#10;----------------------错误开始--------------------------&#13;&#10;" />
        <param name="Footer" value="&#13;&#10;----------------------错误结束--------------------------&#13;&#10;" />
      </layout>
     <filter type="log4net.Filter.LevelRangeFilter">
         <!--设置插入等级-->
         <param name="LevelMin" value="DEBUG" />
         <param name="LevelMax" value="WARN" />
       </filter>
    </appender>

    <!--数据库日志配置-->
    <appender name="SqlLogConfig" type="log4net.Appender.AdoNetAppender" >
      <bufferSize value="1" />
      <connectionType value="System.Data.SqlClient.SqlConnection,System.Data, Version=1.0.3300.0, Culture=neutral,PublicKeyToken=b77a5c561934e089" />
      <connectionString value="Database=ErpDB;Server=192.168.3.63;uid=erpUser;pwd=kfzj2013;" />
      <commandText value="INSERT INTO T_SysLog([Log_Id],[Log_Time],[Log_Thread],[Log_Level],[Log_Class],[Log_Message],[Log_Exception],[Log_DepId],[Log_ServerId]) VALUES (NEWID(),@Log_Time,@Log_Thread,@Log_Level,@Log_Class,@Log_Message,@exception,@Operand,@IP)" />
      <parameter>
        <parameterName value="@Log_Time" />
        <dbType value="DateTime" />
        <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss}" />
      </parameter>
      <parameter>
        <parameterName value="@Log_Thread" />
        <dbType value="String" />
        <size value="200" />
        <layout type="log4net.Layout.PatternLayout" value="%thread" />
      </parameter>
      <parameter>
        <parameterName value="@Log_Level" />
        <dbType value="String" />
        <size value="200" />
        <layout type="log4net.Layout.PatternLayout" value="%level" />
      </parameter>
      <parameter>
        <parameterName value="@Log_Class" />
        <dbType value="String" />
        <size value="200" />
        <layout type="log4net.Layout.PatternLayout" value="%class" />
      </parameter>
      <parameter>
        <parameterName value="@Log_Message" />
        <dbType value="String" />
        <size value="3000" />
        <layout type="log4net.Layout.PatternLayout" value="%message" />
      </parameter>
      <parameter>
        <parameterName value="@exception" />
        <dbType value="String" />
        <size value="2000" />
        <layout type="log4net.Layout.ExceptionLayout" />
      </parameter>
      <!--int类型  参数1-->
      <parameter>
        <parameterName value="@Operator" />
        <dbType value="Int16" />
        <layout type="Erp.Views.ReflectionLayout">
          <conversionPattern value="%property{Operator}" />
        </layout>
      </parameter>
      <!--字符串类型 参数2 当前作为“部门编号”使用-->
      <parameter>
        <parameterName value="@Operand" />
        <dbType value="Int16" />
        <layout type="Erp.Views.ReflectionLayout">
          <conversionPattern value="%property{Operand}" />
        </layout>
      </parameter>
      <!--int类型 参数3-->
      <parameter>
        <parameterName value="@ActionType" />
        <dbType value="Int16" />
        <layout type="Erp.Views.ReflectionLayout">
          <conversionPattern value="%property{ActionType}" />
        </layout>
      </parameter>
      <!--字符串类型 参数4 当前作为“服务器ID”使用-->
      <parameter>
        <parameterName value="@IP" />
        <dbType value="Int16" />
        <layout type="Erp.Views.ReflectionLayout">
          <conversionPattern value="%property{IP}" />
        </layout>
      </parameter>
      <!--字符串类型 参数5-->
      <parameter>
        <parameterName value="@Browser" />
        <dbType value="Int16" />
        <layout type="Erp.Views.ReflectionLayout">
          <conversionPattern value="%property{Browser}" />
        </layout>
      </parameter>
      <!--字符串类型 参数6-->
      <parameter>
        <parameterName value="@MachineName" />
        <dbType value="Int16" />
        <layout type="Erp.Views.ReflectionLayout">
          <conversionPattern value="%property{MachineName}" />
        </layout>
      </parameter>
      <filter type="log4net.Filter.LevelRangeFilter">
        <!--设置插入等级-->
        <param name="LevelMin" value="ERROR" />
        <param name="LevelMax" value="FATAL" />
      </filter>
    </appender>
   
    <logger name="ReflectionLayoutMin">
       <level value="ALL" />
      <appender-ref ref="FileLogConfig" />
    </logger>
    <logger name="ReflectionLayoutMax">
      <level value="DEBUG"/>
      <appender-ref ref="SqlLogConfig"/>
      <appender-ref ref="FileLogConfig"/>
    </logger>
  </log4net>

</configuration>

调用端:

IMyLog myLog = MyLogManager.GetLogger(“ReflectionLayoutMax”);
            try
            {
                myLog.Error(1, "D032F2A4-FF53-440D-8216-13A235C9B679", 0, "这是全部参数测试", "192.168.3.4", "MyComputer", "Maxthon(MyIE2)Fans");
                myLog.Debug(1, "D032F2A4-FF53-440D-8216-13A235C9B679", 0, "这是全部参数测试", "192.168.3.4", "MyComputer", "Maxthon(MyIE2)Fans");
                myLog.Warn(1, "D032F2A4-FF53-440D-8216-13A235C9B679", 0, "这是全部参数测试", "192.168.3.4", "MyComputer", "Maxthon(MyIE2)Fans");
            }
            catch (Exception ec)
            {
                myLog.Debug("这是一个参数重载测试!");
            }

其中IMyLog类是我扩展的参数类。。。哪位大神路过看看。。。拜谢。。。

点点星痕的主页 点点星痕 | 初学一级 | 园豆:157
提问于:2014-01-02 18:19
< >
分享
最佳答案
0

上面你说 WPF 的不行,WinForm 的可以,下面你又说你的是 WinForm 的,有点乱。

你的同样的代码,到底是 WinForm 的行,还是 WPF 的行?

收获园豆:20
Launcher | 高人七级 |园豆:45045 | 2014-01-03 11:13

大哥  wpf的不行  不知道哪出错了

点点星痕 | 园豆:157 (初学一级) | 2014-01-03 11:52

@点点星痕: 这就好比 1+1=2,你写在 Winform 里,它就等于 2,你写在 WPF 里它就不等于 2 了,你说奇怪不奇怪。所以,这种问题很好分析,但是好像你不是很喜欢写代码,如果是我的话,我会这么做:

1、建立两个项目,一个是 WPF ,一个是 Winform的,各添加一个 Button,然后各自添加 Click 事件处理方法;

2、两个项目的 App.Config,配置为一样,并且引用相同的 log4net 组件;

3、写一个 Log 函数:

void Log()

{

    IMyLog myLog = MyLogManager.GetLogger(“ReflectionLayoutMax”);  

    myLog.Error(1, "D032F2A4-FF53-440D-8216-13A235C9B679", 0, "这是全部参数测试", "192.168.3.4", "MyComputer", "Maxthon(MyIE2)Fans");

};

4、在 WPF 和 Winform 各自的 Click 事件处理方法中调用一次 Log();

Launcher | 园豆:45045 (高人七级) | 2014-01-03 13:10
其他回答(3)
0

http://www.cnblogs.com/aehyok/archive/2013/05/07/3066010.html  我这个是没问题的,你可以进行对比一下。 你写不进去,有没有报什么错误。

 

<layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread"/><!--记录日志时的线程号--> </layout>

 

我记录的value属性都在conversionPattern节点下的。

收获园豆:15
aehyok | 园豆:1012 (小虾三级) | 2014-01-02 18:28

<parameter>

<parameterName value="@log_thread"/>

<dbType value="String"/>

<size value="255"/>

<layout type="log4net.Layout.PatternLayout">

  <conversionPattern value="%thread"/><!--记录日志时的线程号-->

</layout>

</parameter>

支持(0) 反对(0) aehyok | 园豆:1012 (小虾三级) | 2014-01-02 18:33

@aehyok: 没有报错  文件都可以写入  就是SQL 进不去。。。。?

支持(0) 反对(0) 点点星痕 | 园豆:157 (初学一级) | 2014-01-03 09:38

@点点星痕: 你可以把我的先复制到你程序里面试试   我的我试过的没问题   

支持(0) 反对(0) aehyok | 园豆:1012 (小虾三级) | 2014-01-03 09:55

@aehyok: 其实我做的wpf  mvvm模式的  但是和winfrom一样啊  为啥winfrom都可以而wpf不行呢  是不是配置有问题?

支持(0) 反对(0) 点点星痕 | 园豆:157 (初学一级) | 2014-01-03 10:18

@点点星痕: 看着好像也没啥大问题  你试过我的了吗

支持(0) 反对(0) aehyok | 园豆:1012 (小虾三级) | 2014-01-03 10:22

@aehyok: 嗯试过了 winfrom的可以  wpf的咋不行了了呢。。。?

支持(0) 反对(0) 点点星痕 | 园豆:157 (初学一级) | 2014-01-03 10:25

@点点星痕: 这么奇怪哇 

支持(0) 反对(0) aehyok | 园豆:1012 (小虾三级) | 2014-01-03 10:25
0

推荐一篇参考博文:log4net写入到SQL server的基本配置

收获园豆:5
dudu | 园豆:37567 (高人七级) | 2014-01-02 20:42

看过了  不行  我的是winfrom的  。。。。

支持(0) 反对(0) 点点星痕 | 园豆:157 (初学一级) | 2014-01-03 09:37
0

http://www.cnblogs.com/wolf-sun/p/3347373.html 我之前也出现过你描述的情况 你可以参考这篇文章 我总结的 希望能帮到你

收获园豆:10
wolfy | 园豆:2636 (老鸟四级) | 2014-01-03 13:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册