.NET CORE 使用log4net 教程

第一步NuGet,在公共類庫引用log4net的文件,當然你想在其它類庫也可以引用,但建議是在公共類庫引用。

第二步在WebApi項目下建立log4net.config 文件,複製以下內容到這個文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <!-- This section contains the log4net configuration settings -->
  <log4net>
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" />
    </appender>

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

      <file value="logfile/" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <staticLogFileName value="false" />
      <datePattern value="yyyyMMdd'.log'" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="1MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

    <!-- Setup the root category, add the appenders and set the default level -->
    <root>
      <level value="ALL" />
      <appender-ref ref="ConsoleAppender" />
      <appender-ref ref="FileAppender" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>

  </log4net>
</configuration>

第三步在Startup 文件下添加如下代碼,標紅是我添加的

  public class Startup
    {
        public static ILoggerRepository repository { get; set; }
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
            repository = LogManager.CreateRepository("GD.Core");
            //指定配置文件
            XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));

        }

  public IServiceProvider ConfigureServices(IServiceCollection services)
        {

          //log日誌注入
            services.AddSingleton<ILogger, LogHelper>();

第四步在Services層 添加如下代碼

namespace Guet.Services
{
    /// <summary>
    /// 公告表
    /// </summary>    
    public class SysNoticeServices : BaseServices<SysNotice>, ISysNoticeServices
    {

        private ISysNoticeRepository dal;
        private ISysUserRepository SysUserRepository;
        private IMapper Mapper;
        private readonly IUnitOfWork UnitOfWork;
        private ILogger Logger;
        public SysNoticeServices(IUnitOfWork UnitOfWork, ISysNoticeRepository dal, IMapper Mapper, ISysUserRepository SysUserRepository, ILogger Logger)
        {
            this.dal = dal;
            base.baseDal = dal;
            this.Mapper = Mapper;
            this.UnitOfWork = UnitOfWork;
            this.SysUserRepository = SysUserRepository;
            this.Logger = Logger;
        }

第五步,就可以直接通過Logger.Debug();

發佈了27 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章