说明

  1. Prism中如果把日志级别设定为DEBUG,会显示框架加载信息
  2. Prism默认是没有日志系统的

步骤

  1. 下载log4net包
Install-Package log4net;
  1. 在app.config中配置日志系统需要的信息
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--使用log\\代表存储在log文件夹下-->
<file value="log\\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<!--这里必须添加'.txt'代表创建日志后缀-->
<datePattern value="yyyyMMdd'.txt'"/>
<staticLogFileName value="false" />
<maximumFileSize value="10MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="日期:%date%n线程ID:[%thread]%n日志等级:%-5level%n内容:%message%newline%newline" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
</startup>
</configuration>
  1. 在AssemblyInfo.cs中设定使用app.config的配置信息
[assembly: log4net.Config.XmlConfigurator(Watch = false)]
  1. 在项目中使用log4net,
using Prism.Logging;
using log4net; namespace AutoSeller
{
public class LogggerAdapter : ILoggerFacade
{
private static readonly ILog _log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public void Log(string message, Category category, Priority priority)
{
switch (category)
{
case Category.Debug:
_log.DebugFormat(message, category.ToString(), (int)priority);
break;
case Category.Exception:
_log.ErrorFormat(message, category.ToString(), (int)priority);
break;
case Category.Info:
_log.InfoFormat(message, category.ToString(), (int)priority);
break;
case Category.Warn:
_log.WarnFormat(message, category.ToString(), (int)priority);
break;
default:
break;
}
}
}
}
  1. 在bootstrapper中重写CreateLogger方法,创建日志系统。
using Prism.Logging;
namespace AutoSeller
{
public partial class SecondaryCacheBootstrapper
{ private readonly LoggerAdapter _logger = new LoggerAdapter(); protected override ILoggerFacade CreateLogger()
{
return _logger;
}
}
}

log4net说明

log4net支持记录5中类型日志消息:

  • FATAL
  • ERROR
  • WARN
  • INFO
  • DEBUG

对应在程序中使用同名函数记录日志,如记录INFO类型日志使用 log .Info(msg)。我们可能不需要显示所有类型日志,在开发我们需要显示调试日志信息,错误日志信息,而在实际部署中只需显示错误日志消息即可。可以通过设定日志等级实现上述需求,log4net支持7个等级的日志:

  • OFF -没有消息
  • FATAL
  • ERROR
  • WARN
  • INFO
  • DEBUG
  • ALL -所有消息

当我们在配置文件中配置日志等级为DEBUG时,

<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</root>

所有FATAL,ERROR,WARN,INFO,DEBUG类型消息都会被记录。

2.1 自定义日志系统-log4net的更多相关文章

  1. 磨刀不误砍柴工——统一日志系统 Log4Net/ExceptionLess

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫必须注明原文地址:www.cnblogs.com/tdws . 一.   写在前面 本文Log4Net介绍了基础的方式,大数据量生产环境不能使用,中等 ...

  2. 统一日志系统 Log4Net/ExceptionLess

    一.   写在前面 本文Log4Net介绍了基础的方式,大数据量生产环境不能使用,中等日志量请日志单库. 希望爱技术的你不要错过exceptionless和ELK 第四节开始简单配置大牛们推荐的了Ex ...

  3. C# 日志系统 log4net 配置及使用

    1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...

  4. Django中配置自定义日志系统

  5. ELK+FileBeat+Log4Net搭建日志系统

    ELK+FileBeat+Log4Net搭建日志系统 来源:https://www.zybuluo.com/muyanfeixiang/note/608470 标签(空格分隔): ELK Log4Ne ...

  6. .NET下日志系统的搭建——log4net+kafka+elk

    .NET下日志系统的搭建--log4net+kafka+elk 前言     我们公司的程序日志之前都是采用log4net记录文件日志的方式(有关log4net的简单使用可以看我另一篇博客),但是随着 ...

  7. 【5】基于Log4Net的日志系统

    阅读目录 日志系统应具备的特性  Log4Net 配置文件:log4net.config 初始化 输出信息 对Log4Net的封装 log4net.config复杂配置   不管是Web应用程序还是W ...

  8. 搭建一套自己实用的.net架构(2)【日志模块-log4net】

    先谈谈简单的模块,日志.在系统中日志模块是必须的,什么系统日志,操作日志,调试日志.这里用的是log4net. 对log4net还不熟悉的小伙伴们赶快去搜索基础教程哦, 我这里就不温故了. 那么有人要 ...

  9. WCF 项目应用连载[2] - 创建Lig日志系统

    WCF 项目应用连载[1] - 索引 - 轻量级的Log系统 - Lig Sample -序 现在我们创建一个Lig工程 - Litelog 2.1 创建Lig服务 _________________ ...

随机推荐

  1. Android高级控件(下)

    计时器(Chronometer) getBase() 基准时间 setFormat() 设置显示格式 start() 开始计时 stop() 停止计时 setOnChronometerListener ...

  2. randomatic

    下载 randomaticrandomatic 使用简单的字符序列生成指定长度的随机字符串.原generate-password. 请考虑下面这个项目的作者,Jon Schlinkert主演的,考虑项 ...

  3. ANNdotNET中的视觉神经网络设计器

    ANNdotNET简介 是一个在.net平台上进行深度学习的开源项目.NET Framework和.NET Core).该项目位于http://github.com/bhrnjica/anndotne ...

  4. gitlab-配置邮件

    一:配置邮件  1. 进入配置文件,通过修改/etc/gitlab/gitlab.rb来设置邮件功能  修改后的文件 1 ## GitLab URL 2 ##! URL on which GitLab ...

  5. OAuth 2.0 Server PHP实现示例

    需求实现三方OAuth2.0授权登录 使用OAuth服务OAuth 2.0 Server PHP 环境nginx mysqlphp 框架Yii 一 安装 项目目录下安装应用 composer.phar ...

  6. Angular8 ie兼容性解决

    启用腻子脚本 polyfills.ts /* IE9, IE10 and IE11 requires all of the following polyfills. */ import 'core-j ...

  7. android的adb命令整理

    adb.exe的路径在Android\Sdk\platform-tools 把这个路径加入到系统的path环境下. 先用usb连接设备,比如一台android手机 adb tcpip 5555 adb ...

  8. tomcat加载失败

    tomcat启动加载信息如下: Connected to server [2017-10-16 09:02:28,149] Artifact basic-admin:war exploded: Art ...

  9. 多测师讲解selenium__论坛验证码_处理方法_ 高级讲师肖sir

    1.登录我们搭建的论坛环境 2. 3. 4.

  10. selenium 浏览器标签切换

    from time import sleep from selenium import webdriver from selenium.webdriver.chrome.options import ...