我根据网上的一些文章和过去用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.在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
希望兄弟们解答一下
在AssemblyInfo.cs里加上
[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中怎么写呢?
要用生成后事件,copy "$(ProjectDir)app.config" "$(TargetPath).config"
?
然后有一个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的信息冲掉呢?
参考一下:
http://dragon.cnblogs.com/archive/2005/03/24/124254.aspx
http://dev.csdn.net/article/75188.shtm
不过不知道为什么在dotnet这个环境下就开始觉得有点麻烦
尤其是在不同的环境下要使用log4xxx
也可能我接触dotnet时间不长
现在就是在test中显示不出信息
因为我是要在test project里面写的关系罢
test属于很bt的,hibernate也是要做特殊处理,不知道log4net为什么就不行
要用生成后事件,copy "$(ProjectDir)app.config" "$(TargetPath).config"$(ProjectDir)
$(TargetPath)
该怎么写?
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中完成