『壹』 如何配置和使用log4net日志
1.先弄个日志记录的类
/// <summary>
/// 使用LOG4NET记录日志的功能,在WEB.CONFIG里要配置相应的节点
/// </summary>
public class LogHelper
{
//log4net日志专用
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
public static void SetConfig()
{
log4net.Config.XmlConfigurator.Configure();
}
public static void SetConfig(FileInfo configFile)
{
log4net.Config.XmlConfigurator.Configure(configFile);
}
/// <summary>
/// 普通的文件记录日志
/// </summary>
/// <param name="info"></param>
public static void WriteLog(string info)
{
if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
}
}
/// <summary>
/// 错误日志
/// </summary>
/// <param name="info"></param>
/// <param name="se"></param>
public static void WriteLog(string info, Exception se)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(info, se);
}
}
}
2.WEB.CONFIG配置
在 configSections 节点上添加:
<section name="log4net" type="log4net.Config.,log4net" />
然后配置单独的节点:
<!--日志-->
<log4net>
<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="E:\xxx.com\xx.xxx.com\App_Log\Error\ErrorLog.log" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaximumFileSize" value="1MB" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="E:\xxx.com\xxx.xxx.com\App_Log\Info\InfoLog.log" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaximumFileSize" value="1MB" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
</layout>
</appender>
</log4net>
3.在GOLBAL文件里调用写日志:
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
//初始日志的配置
LogHelper.SetConfig();
}
void Application_Error(object sender, EventArgs e)
{
//在出现未处理的错误时运行的代码
Exception objExp = HttpContext.Current.Server.GetLastError();
string username = "";
string userid = "";
if (Session["ulogin"] != null)
{
string[] uinfo=Session["ulogin"].ToString().Split('|');
userid = uinfo[0];
username = uinfo[1];
}
Aotain114.Public.LogHelper.WriteLog("\r\n用户ID:"+userid+"\r\n用户名:"+username+"\r\n客户机IP:" + Request.UserHostAddress + "\r\n错误地址:" + Request.Url + "\r\n异常信息:" + Server.GetLastError().Message, objExp);
}
『贰』 如何使用 log4net 日志框架
一,创建测试工程,log4Net组件可以自己从网上下载,也可通过Nuget进行安装。
二,创建日志模型及数据库表,因为我们的日志信息可以输出为文本,也可以输出到数据库。
三,添加MyLayout,MyPatternConverter类扩展PatternLayout。
四,添加Log4Net.config文件,进行输入方式定义。
『叁』 如何使用 log4net 日志框架
1 下载incubating-log4net-1.2.10.Zip文件,解压
在log4net-1.2.10\src下面将log4net.sln用Visual Studio.NET打开,编译后可以得到log4net.dll
你在解压的文件夹下面还可以看到examples\net\1.0,你将cs-examples方案打开,将看到多个例子子,是学习的好资料
2 新建项目logweb,添加引用log4net.dll
3 在文件AssemblyInfo.cs下面加入
[assembly:log4net.Config.XmlConfigurator(ConfigFile="web.config",Watch=true)]
其中是ConfigFile="web.config"的web.config是你的配置文件名称,
这将在第5步中提到
你将该代码加入Global.asax文件中的namespace前面也可以
4 在文件Global.asax中
protected void Application_Start(Objectsender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
}
『肆』 如何使用log4net记录日志
第一步:
添加log4net.dll的引用
第二步:
在AssemblyInfo.cs文件中添加下面一句话:
[assembly:log4net.Config.XmlConfigurator(ConfigFile="Web.config",Watch=true)]
意思是log4net会自动寻找配置文件App.config或Web.config从而获得并加载其中的配置信息。如果想log4net随时监视配置文件以便重新加载的话就要这样写按照上面一样写(winform程序ConfigFile为App.config)。
第三步:
配置Web.config
+ViewCode
上面这段配置取自周公,配置的说明上面已经注释的比较详细了。
第四步:
在程序中记录信息。我们在项目下Default.aspx的Page_Load方法加入如下代码:
//获得log4net实例
ILoglog=log4net.LogManager.GetLogger("LogFileAppender");
log.Info("Default.aspx下面的PageLoad方法被执行");
然后运行项目,可以发现在c:log4netfile.txt中已经记录了一条日志信息:
记录时间:2011-04-2121:26:17,729线程ID:[4]日志级别:INFO出错类:LogFileAppenderproperty:[(null)]-错误描述:Default.aspx下面的PageLoad方法被执行
『伍』 log4net无法输出日志
建立一个dll,先写一个类,引用log4Net.dll
C# code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Logger
{
public static bool GetTracerSwitchor()
{
string configPath = Application.StartupPath + "\\eSerialPro.exe";
System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(configPath);
bool IsTracer = Convert.ToBoolean(config.AppSettings.Settings["IsTracer"].Value);
return IsTracer;
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="msg"></param>
public static void Debug(string msg)
{
bool IsTracer = GetTracerSwitchor();
if (IsTracer)
{
log4net.ILog log = log4net.LogManager.GetLogger("Test");
if (log.IsDebugEnabled)
{
log.Debug(msg);
}
log = null;
}
}
}
这样调用
再在Assembly里加入信息
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
再在可执行程序的根目录下,写一个名为log4net.appconfig文件,内容如下
C# code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config., log4net"/>
</configSections>
<log4net>
<root>
<!--
<level value="ALL" />
<appender-ref ref="rootFile" />
-->
</root>
<logger name="Test">
<level value="DEBUG" />
<appender-ref ref="rollingFile" />
</logger>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="Application.log.txt" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header-------------- " />
<param name="Footer" value=" ----------------------footer-------------- " />
</layout>
</appender>
</log4net>
</configuration>
『陆』 如何使用log4net记录日志
首先说说为什么要进行日志记录。在一个完整的程序系统里面,日志系统是一个非常重要的功能组成部分。它可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。
Log4net是一个很著名的开源的日志记录组件。官方网址为:http://logging.apache.org/log4net/ ,使用Log4net能够很简单的为我们的程序添加日志记录功能。下面我们先通过一个网站例子来说明如何在.net中使用log4net。
http://www.cnblogs.com/qianlifeng/archive/2011/04/22/2024856.html
『柒』 如何使用log4net记录日志
实现步骤:
一,下载log4net.dll (推荐从官网下载 http://logging.apache.org/log4net/download_log4net.cgi)
二,在项目中引用 log4net.dll
三,添加一个配置文件:我这里命名为 log4net.config(也可以在web.config里面配置为便于管理故新建了一个配置文件)
<?xml version="1.0"?>
<configuration>
<configSections>
<section name= "log4net" type= "log4net.Config., log4net " />
</configSections>
<log4net>
<logger name="iNotes">
<level value="INFO"/>
<appender-ref ref="ADONetAppender" />
</logger>
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
<bufferSize value="1" /><!--这里是表示是记录1 条到缓冲区,满1条后再写入SQL server 可根据需要自定义配置-->
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="server=.;database=106_16_Driving;uid=sa;pwd=cx2012;" />
<commandText value="INSERT INTO OperateLog ([OperateType],[Describe],[Userid],[OperateTime]) VALUES (@OperateType, @Describe, @Userid, @OperateTime)" />
<parameter>
<parameterName value="@OperateType" />
<dbType value="String" />
<size value="1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{OperateType}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Describe" />
<dbType value="String" />
<size value="500" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{Describe}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Userid" />
<dbType value="String" />
<size value="20" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{Userid}" />
</layout>
</parameter>
<parameter>
<parameterName value="@OperateTime" />
<dbType value="String" />
<size value="20" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{OperateTime}" />
</layout>
</parameter>
</appender>
</log4net>
</configuration>
四,在项目的 AssemblyInfo.cs 文件的指定log4net 的配置文件路径
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
五,自定义记录函数
View Code
六,在 后台代码中的调用
Operate_Log("1", "学员:" + txtName.Text);