wpf Log4net的配置和使用

现在项目涉及的是cs客户端,在项目中使用log4net记录本地日志和异常信息,这里项目做完了,想着自己做一个demo,测试记录一下log4Net的配置使用。

 

第一步、新建一个wpf应用程序,项目右键 -----》点击NuGet程序包 -----》搜索lognet -------》点击安装

wpf Log4net的配置和使用_第1张图片

 

第二步:在app.config中添加节点  (当然,如果是Web项目就是 web.config)

wpf Log4net的配置和使用_第2张图片

配置文件代码如下:


  
    
    
"log4net" type="System.Configuration.IgnoreSectionHandler"/> <log4net> "LogFileAppender" type="log4net.Appender.RollingFileAppender"> value="D://logfile.txt"/> "true"/> "Date"/> value="10" /> value="2MB" /> "yyyyMMdd-HH:mm:ss"/> "log4net.Layout.PatternLayout"> value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline"/> value="DEBUG"/> ref ref="LogFileAppender"/> log4net>

把配置加到app.config中,如图所示

wpf Log4net的配置和使用_第3张图片

 

第三步:

 在项目中找到Properties文件夹中找到AssemblyInfo.cs 在代码追后 添加 [assembly: log4net.Config.XmlConfigurator(Watch = true)]

wpf Log4net的配置和使用_第4张图片

 

wpf Log4net的配置和使用_第5张图片

 

 

第四步:添加操作log4net的后台代码

xaml文件创建按钮

xaml.cs 添加执行操作代码

private void LogBtn_Click(object sender, RoutedEventArgs e)
        {
            string strLog = String.Format("[Thread ID:{0}]{1}", AppDomain.GetCurrentThreadId(), "Log4net写入日志配置处理");
            WriteLog(strLog);
        }

        private void WriteLog(string exp = null, string loggerName = "InfoLogger")
        {
//新建的一个静态类 LogObject.Log(loggerName).Info(exp);
LogObject.Log(loggerName).Error(exp); }

public static class LogObject
    {

        public static ILog Log(string LoggerName)
        {
//log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
  return LogManager.GetLogger(LoggerName); } }

 

第五步:

找到文件路径D://logfile.txt 查看日志!

wpf Log4net的配置和使用_第6张图片

 

静态类中获取日志对象的另一种写法:这个是程序自动获取当前程序对象     (上面的我是通过WriteLog方法传入的)

ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
return log;

日志输出:

 

 

如果要在程序刚运行和退出的时候写入日志,在App.xaml.cs中加入:

public static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            Log.Info("==Startup=====================>>>");
        }
        protected override void OnExit(ExitEventArgs e)
        {
            Log.Info("<<<========================End==");
            base.OnExit(e);
        }

 

先再运行编译后的exe文件

wpf Log4net的配置和使用_第7张图片

然后退出程序,看结果

wpf Log4net的配置和使用_第8张图片

我们可以看到程序在进入和退出的时候也写入了日志。 

 

扩展的知识点

日志记录器(Logger)的级别顺序: 
    分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级 从高到低分别是 ERROR、WARN、INFO、DEBUG。 
    通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别, 则应用程序中所有DEBUG级别的日志信息将不被打印出来。(比定义低的级别不会被打印出来)

    优先级高的将被打印出来。项目上生产环境时候建议把debug的日志级别重新调为warn或者更高,避免产生大量日志。

 

转载于:https://www.cnblogs.com/likui-bookHouse/p/11052053.html

你可能感兴趣的:(wpf Log4net的配置和使用)