log4net和log4j一样好
来源:互联网 发布:网络投资平台哪个好 编辑:程序博客网 时间:2024/06/09 14:30
这个东西很好用,呵呵。 而且是用在dotnet平台上的,不错。与log4j都是apache的血统。
open source的项目。本次打算在我们的新项目里使用。
以下简单写个使用步骤。
1:建立一个vb.net工程,名字叫button
2:在AssemblyInfo.vb里面添加一句
<Assembly: log4net.Config.XmlConfiguratorAttribute(Watch:=True)>
3:在工程里面引用log4net.dll(可以去http://logging.apache.org/log4net/downloads.html下载)
4:在工程里面添加一个form1,并且把 Imports log4net 添加到form1的头部。
5: 在form1里面添加
Private Shared ReadOnly Log As log4net.ILog = _
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
6:在form1里面再添加以下代码,这段代码可以测一下多线程的log输出,呵呵。
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
6:在form1里面再添加以下代码,这段代码可以测一下多线程的log输出,呵呵。
Private Sub myTestThread()
With Log
.Debug("Button1_Click Debug")
System.Threading.Thread.Sleep(10)
.Error("Button1_Click Error")
System.Threading.Thread.Sleep(10)
.Fatal("Button1_Click Fatal")
System.Threading.Thread.Sleep(10)
.Info("Button1_Click Info")
End With
With Log
.Debug("Button1_Click Debug")
System.Threading.Thread.Sleep(10)
.Error("Button1_Click Error")
System.Threading.Thread.Sleep(10)
.Fatal("Button1_Click Fatal")
System.Threading.Thread.Sleep(10)
.Info("Button1_Click Info")
End With
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
Dim b As Integer
b = 10
For i = 1 To 10
Dim i As Integer
Dim b As Integer
b = 10
For i = 1 To 10
Dim MyThread As New System.Threading.Thread(AddressOf myTestThread)
MyThread.Sleep(b)
MyThread.Start()
b -= 1
Next i
End Sub
MyThread.Sleep(b)
MyThread.Start()
b -= 1
Next i
End Sub
7:在你生成的button.exe的同级目录下建立一个文件button.exe.config,并且把下面内容拷贝进去
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- Register a section handler for the log4net section -->
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>
<appSettings>
<!-- To enable internal log4net logging specify the following appSettings key -->
<!-- <add key="log4net.Internal.Debug" value="true"/> -->
</appSettings>
<!-- This section contains the log4net configuration settings -->
<log4net>
<!-- Define some output appenders -->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="log-file.txt" />
<!-- Example using environment variables in params -->
<!-- <param name="File" value="${TMP}//log-file.txt" /> -->
<param name="AppendToFile" value="true" />
<!-- An alternate output encoding can be specified -->
<!-- <param name="Encoding" value="unicodeFFFE" /> -->
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header] " />
<param name="Footer" value="[Footer] " />
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
<!-- Alternate layout using XML
<layout type="log4net.Layout.XMLLayout" /> -->
</appender>
<configuration>
<!-- Register a section handler for the log4net section -->
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>
<appSettings>
<!-- To enable internal log4net logging specify the following appSettings key -->
<!-- <add key="log4net.Internal.Debug" value="true"/> -->
</appSettings>
<!-- This section contains the log4net configuration settings -->
<log4net>
<!-- Define some output appenders -->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="log-file.txt" />
<!-- Example using environment variables in params -->
<!-- <param name="File" value="${TMP}//log-file.txt" /> -->
<param name="AppendToFile" value="true" />
<!-- An alternate output encoding can be specified -->
<!-- <param name="Encoding" value="unicodeFFFE" /> -->
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header] " />
<param name="Footer" value="[Footer] " />
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
<!-- Alternate layout using XML
<layout type="log4net.Layout.XMLLayout" /> -->
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
<!-- <appender-ref ref="A" /> -->
</root>
<!-- Specify the level for some specific categories -->
<logger name="button">
<!-- <appender-ref ref="B" /> -->
<level value="info" />
<appender-ref ref="LogFileAppender" />
</logger>
</log4net>
</configuration>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
<!-- <appender-ref ref="A" /> -->
</root>
<!-- Specify the level for some specific categories -->
<logger name="button">
<!-- <appender-ref ref="B" /> -->
<level value="info" />
<appender-ref ref="LogFileAppender" />
</logger>
</log4net>
</configuration>
8:运行button.exe,然后就可以看到当前目录下有个log-file.txt。里面就可以看到输出的log内容。
呵呵。这只是个helloworld程序,不过确实是个好的开始,dotnet下写log不用再麻烦了!
- log4net和log4j一样好
- 因为壮壮和我一样好
- 存储日志在mongodb实现和log4j一样的功能
- 让你的2003和xp一样好用
- 英语和老外说的一样溜:好口语三关键
- log4j,log4net配置使用总结[原创](一)
- 项目模版(C#),已配置好 Log4net 、AjaxPro 和 AjaxToolKit
- log4j和commons- logging(好文整理转载)
- log4j和commons- logging(好文整理转载)
- log4net和SQLServer2000
- Log4Net 配置和使用
- Log4Net 配置和使用
- Log4Net 配置和使用
- Log4Net 配置和使用
- log4net使用和配置
- Log4Net 配置和使用
- Log4Net 配置和使用
- Log4Net 配置和使用
- Visual Basic编程规范[转]
- redhat EL5 tomcat5.5.23 联携apache2.2.3
- redhat EL5 与xmanager
- 又是一个丰收的季节
- 其实dotnet2003是可以调试脚本的
- log4net和log4j一样好
- 11月18日上传的作业
- 获取查询字符串的变量值
- SQL中表的复制
- qsort和memset
- sql删除重复列名
- PHP - Manual手册 - XL. Filesystem 文件系统函数 - is_uploaded_file判断文件是否是通过 HTTP POST 上传的
- 在windows2003上使用USB移动硬盘
- 选择的痛苦 ITIL三大产品怎么选?