首页 > 其他分享 >使用NLog记录上位机操作日志

使用NLog记录上位机操作日志

时间:2023-09-08 23:33:13浏览次数:35  
标签:name 配置文件 上位 NLog 日志 方法 logger

在上位机中一些重要日志信息需要保存到日志中,比如登录信息,操作信息等。

用于日志的库常用的有NLog、Log4Net等,相较而言NLog库配置简单,学习成本低。

使用方法如下:

1、NuGet下载安装NLog库;

2、修改或创建配置文件,方法有两种,分别如下:

方法1:创建一个“nlog.config”的配置文件(注意,文件名nlog是NLog库中约定的,不能随便改),配置如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <!-- 示例配置文件 nlog.config -->
    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

        <targets>
            <!--以日期+log命名的日志,第一种方法-->
            <target xsi:type="File" name="file" fileName="E:\log\${date:format=yyyyMMdd}log.txt" />
            
            <!--以日期+log命名的日志,第二种方法-->
            <!--
            <target xsi:type="File" name="file" fileName="E:\log\${shortdate}log.txt" />
            -->
            
            <!--保存到指定文件夹-->
            <!--
            <target xsi:type="File" name="file" fileName="E:\log.txt" />
            -->

            <!--保存到当前文件夹-->
            <!--
            <target xsi:type="File" name="file" fileName="./log.txt" />
            -->
            
        </targets>

        <rules>
            <logger name="UserActionLogger" minlevel="Info" writeTo="file" />
        </rules>

    </nlog>
</configuration>

上面的代码中,分别演示了将日志文件保存到相对路径,绝对路径,以及按时间日期,每天一个日志文件的保存方法。

方法2:使用 App.config 或 Web.config:将 NLog 的配置信息添加到应用程序的配置文件中。实例项目为winform项目,使用App.config 文件,对其修改如下:

<configuration>
  <configSections>
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
  </configSections>
 
  <nlog>
    <!-- NLog的配置内容 -->  
    <targets>
      <target name="logfile" xsi:type="File" fileName="log.txt" />
    </targets>
 
    <rules>
      <logger name="*" minlevel="Info" writeTo="logfile" />
    </rules>
  </nlog>
</configuration>

3、获取NLog实例,有两种方法:

方法1,使用LogManager.GetLogger方法,如下:

private static readonly Logger logger = LogManager.GetLogger("UserActionLogger");

要求:配置文件中<logger name="UserActionLogger" minlevel="Info" writeTo="file" />,logger name与LogManager.GetLogger(name)中的参数name必须相同。

方法2,使用方法,如下:

private static readonly Logger logger = LogManager.GetCurrentClassLogger();

要求:配置文件中<logger name="*" minlevel="Info" writeTo="file" />,logger name="*"

4、使用logger记录日志,

logger.Trace()logger.Debug()logger.Info()logger.Warn()logger.Error()logger.Fatal() 是 NLog 中的日志级别方法,用于记录不同级别的日志。

这里常用的是logger.Info();

例如点击按钮操作时:logger.Info("用户点击了按钮");

 

标签:name,配置文件,上位,NLog,日志,方法,logger
From: https://www.cnblogs.com/hanzq/p/17688750.html

相关文章

  • 机器学习日志 新闻标题分类
    根据标题内容,分类有财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐#导入必要的包importrandomimportjieba#处理中文fromsklearnimportmodel_selectionfromsklearn.naive_bayesimportMultinomialNBimportjoblibimportr......
  • JAVA日志技术 & Logback
    前言为什么需要记录日志?我们不可能实时的24小时对系统进行人工监控,那么如果程序出现异常错误时要如何排查呢?并且系统在运行时做了哪些事情我们又从何得知呢?这个时候日志这个概念就出现了,日志的出现对系统监控和异常分析起着至关重要的作用一、日志概括1.了解日志框架JAVA在早期的日......
  • 项目八股[日志系统]
    日志系统涉及到的C++特性语法用了一个锁+两个条件变量,跟线程池不一样只用了一个锁一个条件变量C++11提供的condition_variable类是一个同步原语,它能够阻塞一个或者多个线程,直到另一线程修改共享变量并通知condition_variable。对比POSIX的pthread_cond,pthread移植性好,condi......
  • Discourse 的系统日志
    Discourse提供了较为完善的日志查看方式。用得最多的可能就是Logster的基于Web的UI了。LogsterDiscourse的错误日志面板用的是logster,采集的是Rails/Rack的日志,正常应该用Rails::Logger但是discourse做了封装。正常的访问地址为你的域名后面添加logs。例如,可以访问......
  • 利用时间戳切割Nginx日志
    worker_processes2;events{worker_connections1024;}http{includemime.types;default_typeapplication/octet-stream;log_formataka_logs'{"@timestamp":"$time_iso8601",''&q......
  • 线程池拒接测试添加日志
    /***当线程池耗尽时,由调用者负责执行任务,并打印相关日志*/@Slf4jpublicclassCallerRunsWithLogPolicyimplementsRejectedExecutionHandler{publicvoidrejectedExecution(Runnabler,ThreadPoolExecutore){//shutdown():不会立即终止线程池,而是要......
  • 请大家一定不要像我们公司这样打印log日志
    前言最近接手了公司另一个项目,熟悉业务和代码苦不堪言。我接手一个新项目,有个习惯,就是看结构,看数据库,搜代码。其中搜代码是我个人这些年不知不觉形成的癖好,我下面给大家展示下这个小癖好。正文我面对一个到手的新项目,会主动去搜索一些关键词,让我对这个项目有个整体健......
  • mysql8关闭binlog并清空Binlog
    编辑my.ini或者my.cnf文件清空binlog信息#查看现存的binlog文件列表showmasterlogs;#重置清空binlog文件resetmaster;#重置清空后重新查看现存的binlog文件列表是否都被清空了showmasterlogs;停用binlog功能为啥要关闭binlog功能呢?是因为反正是个测试服务器,......
  • ELK日志缺失问题排查-多行日志聚合Logstash配置问题
    1.背景推荐系统的推荐请求追踪日志,通过ELK收集,方便遇到问题时,可以通过唯一标识sid来复现推荐过程最近在碰到了几个badcase,需要通过sid来查询推荐日志,但发现部分无法在kibana查询到2.分析推荐日志的整个收集流程如下:    线上机器日志平台FlumeKafkaLogstashE......
  • #yyds干货盘点#Mysql慢查询日志
    Mysql慢查询日志数据库的慢查询是影响项目性能的一大因素,对于数据库我们要优化SQL,首先要找到需要优化的SQL,这就需要我们知道sql执行时间等信息,除了使用SHOWPROFILES;外,mysql也提供了“慢查询日志”功能,用来记录查询时间超过某个设定值的SQL,这将极大程度帮助我们快速定位到症结所在......