在.net网站项目中使用log4net 记录日志到sqlserver 数据库
2013-06-17 17:11
561 查看
1:首先需要到官网上下载dll,这个不难:官方网址为:http://logging.apache.org/log4net/ ,下载后使用vs编译获得log4net.dll。
再次将其引入项目工程,添加引用即可。
2:然后设置项目中的AssemblyInfo.cs文件中添加一行代码,用来指定寻找Web.Config文件中的log4net的配置信息:
[assembly: log4net.Config.XmlConfigurator( ConfigFile="Web.config",Watch=true)]
3: 开始配置web.Config文件:
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"></section>
</configSections>
将上述代码添加到<configuration> 节点下。
4: 配置log4输出方式
</log4net>
<!--定义到保存到文件中-->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<!--定义文件存放位置-->
<file value="D:\log.txt"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd-HH:mm:ss"/>
<layout type="log4net.Layout.PatternLayout">
<!--输出格式-->
<conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline"/>
</layout>
</appender>
<!--定义到日志保存到数据库中-->
<appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="10" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="DATABASE=DB;SERVER=.;UID=XX;PWD=XXXX;Connect Timeout=15"/>
<commandText value="INSERT INTO SystemLog ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
<!--定义各个参数-->
<parameter>
<parameterName value="@logDate" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date" />
</layout>
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@logLevel" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>
<!--定义日志输出媒介,指定通过何种方式储存日志信息。-->
<root>
<!--文件形式记录日志-->
<!--<appender-ref ref="LogFileAppender" />-->
<!--插入到数据库形式记录日志-->
<appender-ref ref="ADONetAppender"/>
</root>
</log4net>
注意:此处的SystemLog
表在数据库中必须存在。
5:前端界面调用
public partial class Index : System.Web.UI.Page
{
private static log4net.ILog loger =log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);=log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
loger.Info("测试记录日志到数据库。");
}
注意:System.Reflection.MethodBase.GetCurrentMethod().DeclaringType
表示调用记录日志方法的类,如上述的类就是Index。
上述代码可以写到任何事件中。
再次将其引入项目工程,添加引用即可。
2:然后设置项目中的AssemblyInfo.cs文件中添加一行代码,用来指定寻找Web.Config文件中的log4net的配置信息:
[assembly: log4net.Config.XmlConfigurator( ConfigFile="Web.config",Watch=true)]
3: 开始配置web.Config文件:
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"></section>
</configSections>
将上述代码添加到<configuration> 节点下。
4: 配置log4输出方式
</log4net>
<!--定义到保存到文件中-->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<!--定义文件存放位置-->
<file value="D:\log.txt"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd-HH:mm:ss"/>
<layout type="log4net.Layout.PatternLayout">
<!--输出格式-->
<conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline"/>
</layout>
</appender>
<!--定义到日志保存到数据库中-->
<appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="10" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="DATABASE=DB;SERVER=.;UID=XX;PWD=XXXX;Connect Timeout=15"/>
<commandText value="INSERT INTO SystemLog ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
<!--定义各个参数-->
<parameter>
<parameterName value="@logDate" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date" />
</layout>
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@logLevel" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>
<!--定义日志输出媒介,指定通过何种方式储存日志信息。-->
<root>
<!--文件形式记录日志-->
<!--<appender-ref ref="LogFileAppender" />-->
<!--插入到数据库形式记录日志-->
<appender-ref ref="ADONetAppender"/>
</root>
</log4net>
注意:此处的SystemLog
表在数据库中必须存在。
5:前端界面调用
public partial class Index : System.Web.UI.Page
{
private static log4net.ILog loger =log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);=log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
loger.Info("测试记录日志到数据库。");
}
注意:System.Reflection.MethodBase.GetCurrentMethod().DeclaringType
表示调用记录日志方法的类,如上述的类就是Index。
上述代码可以写到任何事件中。
相关文章推荐
- .net项目中使用log4net记录日志
- 使用log4net记录日志到数据库(含有自定义属性)
- .net 使用Log4net 输出日志到数据库
- 在.Net程序中使用log4net记录日志(示例)-转
- 在.Net程序中使用log4net记录日志(示例)
- 在.Net程序中使用log4net记录日志(示例)
- 使用log4net做应用程序全局日志记录保存在数据库中
- 使用Log4Net将系统日志信息记录到记事本和数据库中
- asp.net Web项目中使用Log4Net进行错误日志记录
- 在类库项目中使用log4net(RollingFileAppender)记录日志
- asp.net Web项目中使用Log4Net进行错误日志记录
- asp.net Web项目中使用Log4Net进行错误日志记录
- 使用log4net记录日志到数据库(含有自定义属性)
- 使用log4net记录日志到数据库(含有自定义属性)
- Log4Net使用指南之用log4net记录日志到数据库(含有自定义属性)------附Demo例子源代码
- asp.net Web项目中使用Log4Net进行错误日志记录
- 在项目中使用log4net记录日志
- 使用log4net记录日志到数据库(含有自定义属性)
- 使用log4net记录日志到数据库(含有自定义属性)
- Log4net日志使用教程-控制台、文本、数据库三种记录方式