我根据网上的一些文章和过去用log4j的经验来使用log4net,不过好像没什么感觉,还是要靠大家啊我是这样用的,
1.在app.config中分别加入:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
以及
<log4net>
  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n" />
    </layout>
  </appender>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="ConsoleAppender" />
  </root>
</log4net>2.add reference3.use it
private ILog log = LogManager.GetLogger(typeof(LogTest));log.Debug("xxxx");咋就没有反应呢?是应该在output中吧?!这里需要说明一下我用的是vs2005,相应的framework是2.0的
因为apache上说log4net支持1.0,1.1
所以我就不太清楚是因为我使用上有什么问题还是因为log4net不支持2.0
希望兄弟们解答一下

解决方案 »

  1.   

    还有一处,你没设:
    在AssemblyInfo.cs里加上
    [assembly:log4net.Config.XmlConfigurator ( ConfigFileExtension="config",Watch=true)]
      

  2.   

    http://heroman.cnblogs.com/archive/2006/01/09/314053.html
      

  3.   

    [assembly:log4net.Config.XmlConfigurator ( ConfigFileExtension="config",Watch=true)]
    这句我加了没用,是因为我没说清楚情况,呵呵solution底下有一个classLibrary,和相应的test project,以及一个web site
    test和webSite分别reference classLibrary。我该怎么相应的修改AssemblyInfo.cs?谢谢,小山给的文章
    不过其中一段关键的我看不大懂
    引用:
    对于WEBFORM你可以加入
    [assembly:log4net.Config.DOMConfigurator(ConfigFile="web.config",Watch=true)]
    注意:如果使用NUNIT测试的朋友,要用生成后事件,copy "$(ProjectDir)app.config" "$(TargetPath).config"webSite中没有发现有AssemblyInfo这个文件,那该怎么写呢?还有就是在vs2005 test project中怎么写呢?
      

  4.   

    怎么理解
    要用生成后事件,copy "$(ProjectDir)app.config" "$(TargetPath).config"
      

  5.   

    我在项目属性中找到了build event
    然后有一个editbox中可以写相应的post-build event command line那copy "$(ProjectDir)app.config" "$(TargetPath).config"这句是不是应该写在classLibrary这个项目中?
    怎么理解$(ProjectDir)和$(TargetPath)?还有就是我在test的bin中为了使用hibernate,增加了hibernate部分
      <nhibernate>
    <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
    <add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect" />
    <add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
    <add key="hibernate.connection.connection_string" value="Server=rssvr;initial catalog=homedb;User ID=rmsdbadmin;Password=123456" />
      </nhibernate>会不会在copy后把hibernate的信息冲掉呢?
      

  6.   

    AssemblyInfo在Property文件夹下面,你只要给随便设置一些项目属性就会自动生成。
      

  7.   

    log4net配置有点麻烦,但还是很容易用的。
      

  8.   

    不要搞的太复杂。
    参考一下:
    http://dragon.cnblogs.com/archive/2005/03/24/124254.aspx
    http://dev.csdn.net/article/75188.shtm
      

  9.   

    log4XXX的配置无非就是logger,appender,layout三者的关系
    不过不知道为什么在dotnet这个环境下就开始觉得有点麻烦
    尤其是在不同的环境下要使用log4xxx
    也可能我接触dotnet时间不长
    现在就是在test中显示不出信息
      

  10.   

    我开始也是按照log4net的用法/指导,一步一步的做的,第一次就成功了。
      

  11.   

    ...
    因为我是要在test project里面写的关系罢
    test属于很bt的,hibernate也是要做特殊处理,不知道log4net为什么就不行
      

  12.   

    还望大家指点一下这句
    要用生成后事件,copy "$(ProjectDir)app.config" "$(TargetPath).config"$(ProjectDir)
    $(TargetPath)
    该怎么写?
      

  13.   

    那有人在2.0下面成功使用log4net吗?
      

  14.   

    1。在classLibrary project下的app.config中加入log4net的配置
    2。在test project的AssemblyInfo.cs中加入[assembly: log4net.Config.XmlConfigurator( ConfigFileExtension = "config", Watch = true )]
    3。在test project中add reference -> log4net.dll
    4。把前面的app.config复制到test project的Target目录中名字必须是 *.dll.config,这步可以在vs的Build Events中完成
      

  15.   

    在Framework2.0下是可以使用log4net的
      

  16.   

    我的环境是:VS2005(c#2.0)+IBatisnet+Log4net配置以后,用程序中用log.Info(...)可以将信息记录到文件中,但是为什么不能自动记录运行的其他信息呢?我的qq是17007325,有兴趣可以交流谢谢