ABP框架—后台:日志log4net(9)

一、Nuget引入log4net依赖包


如图:

官方地址:http://logging.apache.org/log4net


二、Startup中配置log4net

在ConfigureServices方法中使用容器添加log4net以及配置log4net.config

public class Startup
{
    public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        //.............

        //.............


        // Configure Abp and Dependency Injection
        return services.AddAbp<PDWebHostModule>(
            // Configure Log4Net logging
            options => options.IocManager.IocContainer.AddFacility<LoggingFacility>(
                f => f.UseAbpLog4Net().WithConfig("log4net.config")
            )
        );
    }
}

二、log4net.config配置


默认配置:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
    <file value="App_Data/Logs/Logs.txt" />  --写入制定文件
    <appendToFile value="true" />    --true 日志追加写入文件
    
    --Size 文件大小进行拆分日志文件Logs.txt 
    --创建新文件的方式,可选为Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为Composite
    <rollingStyle value="Size" />    
    
    --备份日志数目,默认为0。在CountDirection为负数时有效。
    <maxSizeRollBackups value="10" />
    
    --当RollingStyle为Composite或Size,这里设置最大文件大小(可以KB,MB,GB为单位,默认为字节)
    <maximumFileSize value="10000KB" />
    
    --True 日志文件是否为静态
    --True/false,默认为true。为true时,RollingStyler的date值将无效。且为true时,需要在file里指定文件名,所有日志都会记录在这个文件里。
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />   --日志格式
    </layout>
  </appender>
  <root>
    <appender-ref ref="RollingFileAppender" />
    --Log4net的日志等级从低到高依次分为:ALL ---> DEBUG ---> INFO ---> WARN ---> ERROR ---> FATAL ---> OFF
    --DEBUG及DEBUG以下级别都进行记录日志
    <level value="DEBUG" /> 
  </root>
</log4net>

当需要把不同级别日志进行分文件记录时,进行如下配置:
 

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="DEBUG">
    <file value="App_Data/Logs/Debug/" /> --日志文件路径 
    <appendToFile value="true" />
    <DatePattern value="yyyy-MM-dd_HH&quot;.txt&quot;"/> --日志文件命名格式
    <RollingStyle value="Date"/>  --Date日期命名
    <staticLogFileName value="false" />  --false 日志文件动态命名
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="DEBUG" />
      <param name="LevelMax" value="DEBUG" />
    </filter>
  </appender>

  <appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="INFO">
    <file value="App_Data/Logs/Info/" />
    <appendToFile value="true" />
    <DatePattern value="yyyy-MM-dd_HH&quot;.txt&quot;"/>
    <RollingStyle value="Date"/>
    <staticLogFileName value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="INFO" />
      <param name="LevelMax" value="INFO" />
    </filter>
  </appender>

  <appender name="WarnRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="WARN">
    <file value="App_Data/Logs/Warn/" />
    <appendToFile value="true" />
    <DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/>
    <RollingStyle value="Date"/>
    <staticLogFileName value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="WARN" />
      <param name="LevelMax" value="WARN" />
    </filter>
  </appender>

  <appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender" LEVEL="ERROR">
    <file value="App_Data/Logs/Error/" />
    <appendToFile value="true" />
    <DatePattern value="yyyy-MM-dd&quot;.txt&quot;"/>
    <RollingStyle value="Date"/>
    <staticLogFileName value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />
    </layout>
    <filter type="log4net.Filter.LevelRangeFilter">
      <param name="LevelMin" value="ERROR" />
      <param name="LevelMax" value="ERROR" />
    </filter>
  </appender>

  <root>
    <level value="All" />
    <appender-ref ref="DebugRollingFileAppender" />
    <appender-ref ref="InfoRollingFileAppender" />
    <appender-ref ref="WarnRollingFileAppender" />
    <appender-ref ref="ErrorRollingFileAppender" />
  </root>
  </log4net>

三、手动记录日志

当程序运行时,ABP内部已经记录了日志,如果我们需要更加详细的手动记录日志也是可以的。 在Application应用服务中记录日志

public class MenuAppService : PDAppServiceBase,IMenuAppService
{
    public ILogger Logger { get; set; }

    public MenuAppService()
    {
        Logger = NullLogger.Instance;
    }

    public void Get()
    {
        Logger.Info("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
    }
}

说明:Log4Net的abp官方说明https://aspnetboilerplate.com/Pages/Documents/Logging#config

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值