设为首页 加入收藏

TOP

基于Log4Net本地日志服务简单实现(一)
2019-09-17 19:07:56 】 浏览:99
Tags:基于 Log4Net 本地 日志 服务 简单 实现

背景

  1. 项目开发中,我们或多或少会使用诸如NLog,Log4Net,Kafka+ELK等等日志套件;

  2. 基于关注点分离原则,业务开发的时候不应该关注日志具体实现;并且后续能方便切换其他日志套件;

  3. 这里先实现基于文件的日志服务,在下一篇将实现基于Kafka+ELK;

  4. 具体源码:MasterChief

  5. Nuget:Install-Package MasterChief.DotNet.Core.Log

  6. 欢迎Star,欢迎Issues;

日志接口定义

/// <summary>
///     日志记录接口
/// </summary>
public interface ILogService
{
    #region Methods
 
    /// <summary>
    ///     Debug记录
    /// </summary>
    /// <param name="message">日志信息</param>
    void Debug(string message);
 
    /// <summary>
    ///     Debug记录
    /// </summary>
    /// <param name="message">日志信息</param>
    /// <param name="ex">异常信息</param>
    void Debug(string message, Exception ex);
 
    /// <summary>
    ///     Error记录
    /// </summary>
    /// <param name="message">日志信息</param>
    void Error(string message);
 
    /// <summary>
    ///     Error记录
    /// </summary>
    /// <param name="message">日志信息</param>
    /// <param name="ex">异常信息</param>
    void Error(string message, Exception ex);
 
    /// <summary>
    ///     Fatal记录
    /// </summary>
    /// <param name="message">日志信息</param>
    void Fatal(string message);
 
    /// <summary>
    ///     Fatal记录
    /// </summary>
    /// <param name="message">日志信息</param>
    /// <param name="ex">异常信息</param>
    void Fatal(string message, Exception ex);
 
    /// <summary>
    ///     Info记录
    /// </summary>
    /// <param name="message">日志信息</param>
    void Info(string message);
 
    /// <summary>
    ///     Info记录
    /// </summary>
    /// <param name="message">日志信息</param>
    /// <param name="ex">异常信息</param>
    void Info(string message, Exception ex);
 
    /// <summary>
    ///     Warn记录
    /// </summary>
    /// <param name="message">日志信息</param>
    void Warn(string message);
 
    /// <summary>
    ///     Warn记录
    /// </summary>
    /// <param name="message">日志信息</param>
    /// <param name="ex">异常信息</param>
    void Warn(string message, Exception ex);
 
    #endregion Methods
}

基于Log4Net本地文件日志服务实现

/// <summary>
///     基于Log4Net的文件日志记录
/// </summary>
public sealed class FileLogService : ILogService
{
    #region Constructors
 
    static FileLogService()
    {
        DebugLogger = LogManager.GetLogger(DebugLoggerName);
        InfoLogger = LogManager.GetLogger(InfoLoggerName);
        WarnLogger = LogManager.GetLogger(WarnLoggerName);
        ErrorLogger = LogManager.GetLogger(ErrorLoggerName);
        FatalLogger = LogManager.GetLogger(FatalLoggerName);
    }
 
    #endregion Constructors
 
    #region Fields
 
    /// <summary>
    ///     The debug logger name
    /// </summary>
    public const string DebugLoggerName = "DEBUG_FileLogger";
 
    /// <summary>
    ///     The error logger name
    /// </summary>
    public const string ErrorLoggerName = "ERROR_FileLogger";
 
    /// <summary>
    ///     The fatal logger name
    /// </summary>
    public const string FatalLoggerName = "FATAL_FileLogger";
 
    /// <summary>
    ///     The information logger name
    /// </summary>
    public const string InfoLoggerName = "INFO_FileLogger";
 
    /// <summa
首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇花样试用微软语音服务晓晓 下一篇将传统 WPF 程序迁移到 DotNetCor..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目