log4net使用方法

	<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
	</configSections>
web.config
<log4net>
    <root>
      <appender-ref ref="fzf_callservices_logs" />
    </root>
    <appender name="fzf_callservices_logs" type="log4net.Appender.RollingFileAppender">
      <file value="logs/fzf_callservices_log.log" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>
  </log4net>

Helper类

using System;
using log4net;
using System.IO;
using Newtonsoft.Json;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace FZFWebUI2._0.Common
{
    public class LogHelper
    {
        private ILog logger;

        public LogHelper(ILog log)
        {
            this.logger = log;
        }

        public void Info(object message)
        {
            this.logger.Info(message);
        }

        public void Info(object message, Exception e)
        {
            this.logger.Info(message, e);
        }

        public void Debug(object message)
        {
            this.logger.Debug(message);
        }

        public void Debug(object message, Exception e)
        {
            this.logger.Debug(message, e);
        }

        public void Warming(object message)
        {
            this.logger.Warn(message);
        }

        public void Warming(object message, Exception e)
        {
            this.logger.Warn(message, e);
        }

        public void Error(object message)
        {
            this.logger.Error(message);
        }

        public void Error(object message, Exception e)
        {
            this.logger.Error(message, e);
        }

        public void Fatal(object message)
        {
            this.logger.Fatal(message);
        }

        public void Fatal(object message, Exception e)
        {
            this.logger.Fatal(message, e);
        }
        public string ConvertJsonString(string str)
        {
            //格式化json字符串
            try
            {
                Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer();
                TextReader tr = new StringReader(str);
                JsonTextReader jtr = new JsonTextReader(tr);
                object obj = serializer.Deserialize(jtr);
                if (obj != null)
                {
                    StringWriter textWriter = new StringWriter();
                    JsonTextWriter jsonWriter = new JsonTextWriter(textWriter)
                    {
                        Formatting = Formatting.Indented,
                        Indentation = 4,
                        IndentChar = ' '
                    };
                    serializer.Serialize(jsonWriter, obj);
                    return textWriter.ToString();
                }
                else
                {
                    return str;
                }
            }
            catch
            {
                return str;
            }
        }
    }
    
    public class LogFactory
    {
        static LogFactory()
        {
        }

        public static LogHelper GetLogger(Type type)
        {
            return new LogHelper(LogManager.GetLogger(type));
        }

        public static LogHelper GetLogger(string str)
        {
            return new LogHelper(LogManager.GetLogger(str));
        }
    }
}
代码调用
            //记录调试日志 将web.config中<!--<appender-ref ref="fzf_callservices_logs" />-->注释即为关闭调试模式
            System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace();
            string name = st.GetFrame(1).GetMethod().DeclaringType.FullName;
            log = LogFactory.GetLogger(name);
            string formatstr = log.ConvertJsonString(tempString);
            string formatpar = log.ConvertJsonString(Parameter);
            log.Debug("\n" + "【" + ServiceCode + "】" + "Parameters:" + "\n" + formatpar + "\n" + "【" + ServiceCode + "】" + "Result:" + "\n" + formatstr);
   


使用log4net进行日志记录的基本步骤如下: 1. 引入log4net库 在你的项目中引入log4net库,可以通过NuGet包管理器或手动添加dll文件的方式进行引入。 2. 配置log4net 在项目中添加一个log4net配置文件,命名为log4net.config或者其他名称,文件的格式可以是XML或者properties格式。在配置文件中设置日志记录器的级别、目的地(如控制台、文件、数据库等)、日志输出格式等信息。 3. 初始化log4net 在程序的入口处,通过log4net.Config.XmlConfigurator.Configure()或者其他方法进行log4net的初始化。 4. 记录日志 在需要记录日志的地方,通过log4net的ILog接口获取一个日志记录器,并使用不同级别的方法(如Debug、Info、Error等)记录不同级别的日志信息。 示例代码如下: ```csharp using log4net; namespace MyNamespace { public class MyClass { // 获取日志记录器 private static readonly ILog log = LogManager.GetLogger(typeof(MyClass)); public void MyMethod() { // 记录日志 log.Debug("debug message"); log.Info("info message"); log.Warn("warn message"); log.Error("error message"); log.Fatal("fatal message"); } } } ``` 需要注意的是,log4net的配置文件需要位于应用程序的根目录或者其他指定目录下,并且在初始化log4net之前必须加载配置文件。另外,log4net的日志记录器名称通常是使用类的全名(包括命名空间)作为前缀,以便于在配置文件中对不同的日志记录器进行配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值