Log4Net使用
2007-01-31 15:43 Rainbow 阅读(646) 评论(1) 收藏 举报首先你应该下载log4net.dll并引入到你的项目中
配置web.config文件。
<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="ADONetAppender" />
<appender-ref ref="RollingLogFileAppender"/>
<appender-ref ref="ConsoleAppender"/>
</root>
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
<bufferSize value="10" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="Data Source=.\sqlexpress;Initial Catalog=YourDB;Persist Security Info=True;User ID=sa;Password=YourPassword" />
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="2000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:\Log.txt" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="10" />
<param name="MaximumFileSize" value="5MB" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
</log4net>
<appSettings/>
<connectionStrings>
<add name="VNETConnectionString" connectionString="Data Source=.\sqlexpress;Initial Catalog=99cc;Persist Security Info=True;User ID=sa;Password=mssql2005"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true"/>
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Forms"/>
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
</system.web>
</configuration>
以为有写到数据库里面的,所以要在你的DB里面建一个张表。SQL脚本:
CREATE TABLE [dbo].[Log](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Date] [datetime] NOT NULL,
[Thread] [nvarchar](255) NOT NULL,
[Level] [nvarchar](50) NOT NULL,
[Logger] [nvarchar](255) NOT NULL,
[Message] [nvarchar](4000) NOT NULL,
[Exception] [nvarchar](4000) NOT NULL,
具体请自己处理。
WEB.CONFIG和数据库表多建好以后。
然后在Global.asax Application_Start中添加
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
log4net.Config.XmlConfigurator.Configure();
}
就可以实例化一个LOGGER了。
新建一个MyLog的类。然后是定义一个log。private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(MyLog));
public class MyLog
{
public MyLog()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(MyLog)); //MyLog为定义的类名。
public static void LogInfo(string LogMessage)
{
log.Info(LogMessage);
}
public static void LogError(string LogMessage)
{
log.Error(LogMessage);
}
//具体的函数可以自己填上去。格式多一个样
}
要使用Log4net处理日志时。就只要直接使用MyLog类下面的静态方法了。
log.Info("日志测试");
然后去数据库里面查看就OK了。但是我有个地方不明白是为什么Log4net写数据库的时候会这么慢啊。但是写文本的就好。希望有人能解答一下啊。
浙公网安备 33010602011771号