ASP.NET简单使用log4net

3 篇文章 0 订阅
1 篇文章 0 订阅

一、下载log4net

在这里插入图片描述
在这里插入图片描述

二、创建log4net.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<configSections>
		<section name="log4net"
		  type="log4net.Config.Log4NetConfigurationSectionHandler,&#xD;&#xA;log4net-net-1.0"/>
	</configSections>
	<log4net>
		<appender name="Log" type="log4net.Appender.RollingFileAppender">
			<param name="File" value="SysLog\" />
			<param name="AppendToFile" value="true" />
			<param name="MaxSizeRollBackups" value="-1" />
			<!--最小锁定模型以允许多个进程可以写入同一个文件-->
			<param name="lockingModel"  type="log4net.Appender.FileAppender+MinimalLock" />
			<param name="MaximumFileSize" value="10MB" />
			<param name="RollingStyle" value="Size" />
			<param name="DatePattern" value="yyyy-MM-dd" />
			<param name="StaticLogFileName" value="true" />
			<layout type="log4net.Layout.PatternLayout">
				<param name="ConversionPattern" value="%-5p %d %m%n" />
			</layout>
		</appender>
		<logger name="Log">
			<level value="all" />
			<appender-ref ref="Log" />
		</logger>
		<root>
			<level value="all" />
		</root>
	</log4net>
</configuration>

三、写帮助类

using log4net;
using log4net.Appender;
using System;
using System.Diagnostics;
using System.IO;

namespace CheckBackFileExist
{
    public class Log
    {
        private static readonly log4net.ILog logComm = log4net.LogManager.GetLogger("Log");

        /// <summary>
        /// 输出系统日志
        /// </summary>
        /// <param name="msg">信息内容</param>
        /// <param name="source">信息来源</param>
        private static void WriteLog(string msg, Action<object> action)
        {
            string filename = DateTime.Now.ToString("yyyy-MM-dd") + ".log";
            var repository = LogManager.GetRepository();

            #region MyRegion
            var appenders = repository.GetAppenders();
            if (appenders.Length > 0)
            {
                RollingFileAppender targetApder = null;
                foreach (var Apder in appenders)
                {
                    if (Apder.Name == "Log")
                    {
                        targetApder = Apder as RollingFileAppender;
                        break;
                    }
                }
                if (targetApder.Name == "Log")//如果是文件输出类型日志,则更改输出路径
                {
                    if (targetApder != null)
                    {
                        if (!targetApder.File.Contains(filename))
                        {
                            targetApder.File = @"Log\" + filename;
                            targetApder.ActivateOptions();
                        }
                    }
                }
            }

            #endregion
            action(msg);
        }
        public static void Error(string msg)
        {
            WriteLog(msg, logComm.Error);
        }
        public static void Info(string msg)
        {
            WriteLog(msg, logComm.Info);
        }
        public static void Warn(string msg)
        {
            WriteLog(msg, logComm.Warn);
        }
    }
}

四、 AssemblyInfo.cs配置

  • 在最后一行添加
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] 

五、 创建Global.asax文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;

namespace CheckBackFileExist
{
    public class Global : System.Web.HttpApplication
    {

        protected void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));
        }

        protected void Session_Start(object sender, EventArgs e)
        {

        }

        protected void Application_BeginRequest(object sender, EventArgs e)
        {

        }

        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {

        }

        protected void Application_Error(object sender, EventArgs e)
        {

        }

        protected void Session_End(object sender, EventArgs e)
        {

        }

        protected void Application_End(object sender, EventArgs e)
        {

        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷啦啦诶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值