log4net多文件配置及loghelper

配置文件

<log4net>
	<logger name="main">
		<!--日志类的名字-->
		<!--<level value="ALL,INFO" />-->
		<level value="ALL" />
		<!--定义记录的日志级别-->
		<appender-ref ref="RollingLog1FileAppender" />
		<!--记录到哪个介质中去-->
	</logger>
	<logger name="Arm1Data1Position">
		<level value="ALL" />
		<appender-ref ref="RollingLog5FileAppender" />
	</logger>
	<appender name="RollingLog1FileAppender" type="log4net.Appender.RollingFileAppender">
		<File value="Logs\" />
		<!--是否是向文件中追加日志-->
		<AppendToFile value="true" />
		<!--每个文件的大小-->
		<MaximumFileSize value="10MB"/>
		<!--log文件数-->
		<MaxSizeRollBackups value="100" />
		<!--日志文件名是否是固定不变的-->
		<StaticLogFileName value="false" />
		<!--日志文件名格式为:yyyy-MM-dd.log-->
		<DatePattern value="yyyyMMdd\\&quot;&quot;yyyyMMdd-HH'.log'" />
		<!--日志根据日期滚动-->
		<RollingStyle value="Date" />
		<layout type="log4net.Layout.PatternLayout">
			<ConversionPattern value="%date [%thread] [%level] %message %newline" />
		</layout>
	</appender>
	<appender name="RollingLog5FileAppender" type="log4net.Appender.RollingFileAppender">
		<File value="Logs\" />
		<AppendToFile value="true" />
		<MaximumFileSize value="10MB"/>
		<MaxSizeRollBackups value="100" />
		<StaticLogFileName value="false" />
		<DatePattern value="yyyyMMdd\\&quot;Arm1Data1Position&quot;yyyyMMdd-HH'.log'" />
		<RollingStyle value="Date" />
		<layout type="log4net.Layout.PatternLayout">
			<ConversionPattern value="%date [%thread] [%level] %message %newline" />
		</layout>
	</appender>
</log4net>

loghelper

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Configuration/log4net.config")]
using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CommonLogger
{
    /// <summary>
    /// 日志记录工具
    /// </summary>s
    public class Logger
    {
        public bool IsDebugEnabled { get { return log.IsDebugEnabled; } }
        public bool IsInfoEnabled { get { return log.IsInfoEnabled; } }
        public bool IsWarnEnabled { get { return log.IsWarnEnabled; } }
        public bool IsErrorEnabled { get { return log.IsErrorEnabled; } }
        public bool IsFatalEnabled { get { return log.IsFatalEnabled; } }

        private ILog log;
		
		//一般为className
        private string messageHead;

        / <summary>
        / 构造日志记录工具
        / </summary>
        / <param name="name">类名称</param>
        / <returns>构造日志记录工具实例</returns>
        //public static Logger GetLogger(string name)
        //{
        //    return new Logger(name);
        //}

        / <summary>
        / 构造日志记录工具
        / </summary>
        / <param name="type">类类型</param>
        / <returns>构造日志记录工具实例<</returns>
        //public static Logger GetLogger(Type type)
        //{
        //    return new Logger(type);
        //}

        /// <summary>
        /// 关闭日志记录
        /// </summary>
        public static void Shutdown()
        {
            LogManager.Shutdown();
        }

        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="name">类名称</param>
        //public Logger(string name)
        //{
        //    log = LogManager.GetLogger(name);
        //}

        public Logger(string name, Type messageHead)
        {
            this.messageHead = "[" + messageHead.ToString() + "] ";
            log = LogManager.GetLogger(name);
        }

        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="name">类类型</param>
        //public Logger(Type type)
        //{
        //    log = LogManager.GetLogger(type);
        //}

        public void Close()
        {
        }

        private string GetCodeMessage(string code)
        {
            return code + " ";
        }

        /// <summary>
        /// 写入Debug级别日志
        /// </summary>
        public void Debug(string message, params object[] args)
        {
            message = messageHead + message;
            if (IsDebugEnabled)
            {
                log.DebugFormat(message, args);
            }
        }

        /// <summary>
        /// 写入Debug级别日志
        /// </summary>
        public void Debug(string code, string message, params object[] args)
        {
            message = messageHead + message;
            if (IsDebugEnabled)
            {
                log.DebugFormat(GetCodeMessage(code) + message, args);
            }
        }

        /// <summary>
        /// 写入Info级别日志
        /// </summary>
        public void Info(string message, params object[] args)
        {
            message = messageHead + message;
            if (IsInfoEnabled)
            {
                log.InfoFormat(message, args);
            }
        }

        /// <summary>
        /// 写入Info级别日志
        /// </summary>
        public void Info(string code, string message, params object[] args)
        {
            message = messageHead + message;
            if (IsInfoEnabled)
            {
                log.InfoFormat(GetCodeMessage(code) + message, args);
            }
        }

        /// <summary>
        /// 写入Warn级别日志
        /// </summary>
        public void Warn(string message, params object[] args)
        {
            message = messageHead + message;
            if (IsWarnEnabled)
            {
                log.WarnFormat(message, args);
            }
        }

        /// <summary>
        /// 写入Warn级别日志
        /// </summary>
        public void Warn(string code, string message, params object[] args)
        {
            message = messageHead + message;
            if (IsWarnEnabled)
            {
                log.WarnFormat(GetCodeMessage(code) + message, args);
            }
        }

        /// <summary>
        /// 写入Error级别日志
        /// </summary>
        public void Error(string message, params object[] args)
        {
            message = messageHead + message;
            if (IsErrorEnabled)
            {
                log.ErrorFormat(message, args);
            }
        }

        /// <summary>
        /// 写入Error级别日志
        /// </summary>
        public void Error(string code, string message, params object[] args)
        {
            message = messageHead + message;
            if (IsErrorEnabled)
            {
                log.ErrorFormat(GetCodeMessage(code) + message, args);
            }
        }

        /// <summary>
        /// 写入Error级别日志
        /// </summary>
        public void Error(string code, string message, Exception e)
        {
            message = messageHead + message;
            if (IsErrorEnabled)
            {
                log.ErrorFormat(GetCodeMessage(code) + message + ", e = " + e.ToString());
            }
        }

        /// <summary>
        /// 写入Error级别日志
        /// </summary>
        public void Error(string code, Exception e)
        {
            //message = messageHead + message;
            if (IsErrorEnabled)
            {
                log.ErrorFormat(GetCodeMessage(code) + ", e = " + e.ToString());
            }
        }

        /// <summary>
        /// 写入Fatal级别日志
        /// </summary>
        public void Fatal(string message, params object[] args)
        {
            message = messageHead + message;
            if (IsFatalEnabled)
            {
                log.FatalFormat(message, args);
            }
        }

        /// <summary>
        /// 写入Fatal级别日志
        /// </summary>
        public void Fatal(string code, string message, params object[] args)
        {
            message = messageHead + message;
            if (IsFatalEnabled)
            {
                log.FatalFormat(GetCodeMessage(code) + message, args);
            }
        }

        /// <summary>
        /// 写入Fatal级别日志
        /// </summary>
        public void Fatal(string code, string message, Exception e)
        {
            message = messageHead + message;
            if (IsFatalEnabled)
            {
                log.FatalFormat(GetCodeMessage(code) + message + ", e = " + e.ToString());
            }
        }

        /// <summary>
        /// 写入Fatal级别日志
        /// </summary>
        public void Fatal(string code, Exception e)
        {
            //message = messageHead + message;
            if (IsFatalEnabled)
            {
                log.FatalFormat(GetCodeMessage(code) + ", e = " + e.ToString());
            }
        }
    }

    public enum LogType
    {
        main,
        motor,
        Move,
        PlatformMotor,
        Arm1Data1Position,
        Arm1Data2Position,
        Arm2Data1Position,
        Arm2Data21Position
    }
}

调用

static readonly CommonLogger.Logger loggermain = new CommonLogger.Logger(nameof(CommonLogger.LogType.main), (typeof(Form1)));

private void Form1_Load(object sender, EventArgs e)
 {
     loggermain.Info(textBox1.Text);
     loggermotor.Info(textBox1.Text);
     loggerArm2Data2Position.Info(textBox1.Text);
 }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值