C# WPF上位机开发(日志调试)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        程序开发的过程中,调试肯定是少不了的。比如说,这个时候,我们可以设置断点、查看变量、检查函数调用堆栈等等。但是如果等软件交付出去了,这个时候应该怎么调试呢?我想,大部分人第一时间想到的方法就是查看日志。日志中不仅包含了时间信息,还有软件操作信息及传感器设备的通讯数据等等,这些都为我们分析软件故障打下了坚实的基础。所以,日志文件对我们来说,其实非常重要。

        要在c# wpf里面生成对应的日志文件,使用方法也非常简单。相关的库也主要以log4net为主。这部分和java优点相似。

1、安装log4net库

        安装log4net库的话,可以直接在引用里面通过NuGet添加。在输入框里面填入log4net,我们就可以看到对应的查询内容,第一个搜索到的结果就是我们需要的日志库,

2、配置App.config文件

        要使用log4net,除了需要编写代码之外,另外一部分就是配置App.config文件。这个文件一般是c# wpf工程自带的,大家只要根据自己配置的内容,再添加上log4net的配置信息即可,

<?xml version="1.0" encoding="utf-8" ?>
<configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /></configSections><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /></startup><log4net><appender name="FileAppender" type="log4net.Appender.FileAppender"><file value="log.txt" /><appendToFile value="true" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /></layout></appender><root><level value="DEBUG" /><appender-ref ref="FileAppender" /></root></log4net></configuration>

3、编码测试log4net

        首席,开始的log4net和log4net.Config都必须用using引入进来。

using log4net;
using log4net.Config;

      接着要使用上log4net,只要做好三个步骤就可以了。第一步,声明一下log对象;第二步,初始化log4net;第三步,开始利用log4net打印信息即可。

        private static readonly ILog log = LogManager.GetLogger(typeof(App));public MainWindow(){InitializeComponent();// initialize log4netXmlConfigurator.Configure();// begin to log nowlog.Info("Application started");}

        如果没有意外的话,我们就可以在debug目录下面看到一个log.txt文件,它打印的内容是这样的,

2023-12-12 08:03:15,770 [1] INFO  WpfApp.App - Application started

4、其他打印方式

        目前log4net支持五种方式打印,分别是debug、info、warn、error和fetal。如果大家需要在gui的windows下同步查看对应日志信息的话,那么可以根据不同的类别打印,附上不同的颜色,这样也更直观一点。

            log.Debug("This is a debug message");log.Info("This is an info message");log.Warn("This is a warning message");log.Error("This is an error message");log.Fatal("This is a fatal message");

        日志中打印出来的效果是这样的,

2023-12-12 08:07:29,283 [1] DEBUG WpfApp.App - This is a debug message
2023-12-12 08:07:29,283 [1] INFO  WpfApp.App - This is an info message
2023-12-12 08:07:29,283 [1] WARN  WpfApp.App - This is a warning message
2023-12-12 08:07:29,283 [1] ERROR WpfApp.App - This is an error message
2023-12-12 08:07:29,283 [1] FATAL WpfApp.App - This is a fatal message

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/216646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标检测锚框

目标检测锚框 最开始呢&#xff0c;我们需要先介绍一下框&#xff0c;先学会一下怎么画框 导入所需要的包 from PIL import Image import d2lzh_pytorch as d2l import numpy as np import math import torch展示一下本次实验我们用到的图像&#xff0c;猫狗 d2l.set_figsiz…

Uncaught ReferenceError: jQuery is not defined解决方法

当我在写java的Maven项目时&#xff0c;出现了这样的一个报错信息&#xff1a; 我一直找代码&#xff0c;抓包&#xff0c;调试&#xff0c;比对代码 jQuery未定义就是指JS的导包没有导进来&#xff01;&#xff01;&#xff01;&#xff01; 导进来就运行正常啦

SpringBoot集成系列--Kakfa

文章目录 一、代码1、添加依赖2、配置kafka3、创建生产者4、创建消费者5、测试 二、遇到问题1、could not be established. Broker may not be available2、Error while fetching metadata with correlation id xxx 一、代码 1、添加依赖 在pom.xml文件中添加Kafka的依赖 &l…

docker---资源控制

docker的资源控制 对容器使用宿主机的资源进行限制。 三种控制方向&#xff1a;CPU 内存 磁盘I/O docker使用linux自带的功能cgroup&#xff1b;control groups是linux内核系统提供的一种可以限制记录&#xff0c;隔离进程所使用的物理资源机制。 docker借助此…

excel数据重复率怎么计算【保姆教程】

大家好&#xff0c;今天来聊聊excel数据重复率怎么计算&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; excel数据重复率怎么计算 在Excel中计算数据重复率可以通过以下步骤实现&#xff1a; 1. 确定重复…

redis的深度理解

上篇博客我们说到了redis的基本概念和基本操作&#xff0c;本篇我们就更深入去了解一些redis的操作和概念&#xff0c;我们就从red的主从同步、redis哨兵模式和redis集群三个方面来了解redis数据库 一、主从同步 像MySQL一样&#xff0c;redis是支持主从同步的&#xff0c;而…

排序的简单理解(下)

4.交换排序 基本思想&#xff1a;所谓交换&#xff0c;就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置 交换排序的特点是&#xff1a;将键值较大的记录向序列的尾部移动&#xff0c;键值较小的记录向序列的前部移动。 4.1 冒泡排序 冒泡排序&#xff08…

鸿蒙OS应用开发之点击事件

在前面我们学习了开发工具的使用,数据类型,运算符,语句和函数,已经具备了基本的编程能力,当然还有很多内容需要学习,比如类、类的继承、接口等等。 在没有学习更多内容之前,我们还是需要不断地练习基本内容,这样才能快速上手,如果一直学习新的内容,就会比较枯燥。因此…

数据结构和算法专题---8、加密算法

本章我们会对加密算法做个简单介绍&#xff0c;包括概述、实现方式、典型场景做个说明。 散列 概述 严格来讲这不算是一种加密&#xff0c;而应该叫做信息摘要算法。该算法使用散列函数把消息或数据压缩成摘要&#xff0c;使得数据量变小&#xff0c;将数据的格式固定下来。…

前端知识笔记(五)———前端密钥怎么存储,才最安全?

前端密钥存储安全是非常重要的&#xff0c;具体原因如下&#xff1a; 保护敏感数据&#xff1a;密钥用于保护敏感数据的安全性。如果密钥泄露&#xff0c;攻击者可能能够访问和篡改敏感数据&#xff0c;导致数据泄露、数据被篡改或系统被入侵。 防止恶意使用&#xff1a;在前端…

vue3若依框架,在页面中点击新增按钮跳转到新的页面,不是弹框,如何实现

在router文件中的动态路由数组中新增一个路由配置&#xff0c;这个配置的就是新的页面。 注意path不要和菜单配置中的路径一样&#xff0c;会不显示内容。 在菜单配置中要写权限标识就是permissions:[]里的内容 在children里的path要写占位符info/:data 点击新增按钮&#x…

HTML+CSS高频面试题

面试题目录 前言1.讲一下盒模型&#xff0c;普通盒模型和怪异盒模型有什么区别2.CSS如何实现居中3.讲一下flex弹性盒布局4.CSS常见的选择器有哪些&#xff1f;优先级5.长度单位px 、em、rem的区别6.position属性的值有哪些7.display属性的值有哪些&#xff0c;分别有什么作用8.…

前端知识笔记(一)———Base64图片是什么?原理是什么?优缺点是什么?

Base64图片是一种将图像数据编码为文本字符串的方法&#xff0c;通常用于将图像嵌入到网页或其他文档中&#xff0c;以减少HTTP请求或实现某些特定的需求。Base64编码不是一种压缩算法&#xff0c;而是一种数据编码方法&#xff0c;它将二进制数据转换为一种可读的ASCII字符集表…

std::map

一 emplace() emplace_hint() try_emplace()区别 1. emplace template< class... Args >std::pair<iterator, bool> emplace( Args&&... args ); 若容器中没有拥有该键的元素&#xff0c;则向容器插入以给定的 args 原位构造的新元素。 细心地使用 em…

20231211-DISM++安装win10-22h2-oct

20231211-DISM安装win10-22h2-oct 一、软件环境 zh-cn_windows_10_consumer_editions_version_22h2_updated_oct_2023_x64_dvd_eb811ccc.isowepe x64 v2.3标签&#xff1a;win10 22h2 wepe dism分栏&#xff1a;WINDOWS 二、硬件环境 8G或以上的有PE功能的启动U盘一个台式机…

AI全栈大模型工程师(二十五)Transformer

文章目录 九、Transformer 江山一统9.1、**消除恐惧:**我们亲手写一个 Transformer9.1.1、Embeddings9.1.2、单头 Attention单个头的注意力计算9.1.3、多头 Attention9.1.4、全连接网络(Feed-Forward Network)9.1.5、拼成一层 Transformer9.1.6、多层 Transformer 构成 BERT…

Python常用文件操作库详解与示例

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 文件操作是编程中常见的任务之一&#xff0c;而Python提供了丰富的文件操作库&#xff0c;使得文件的读取、写入、复制、移动等操作变得非常便捷。本文将深入介绍一些Python中常用的文件操作库&#xff0c;以及它…

原型图都可以用什么软件制作?推荐这9款

对于设计师来说&#xff0c;一个有用的原型设计工具可以大大提高他们的工作效率&#xff0c;节省很多时间。当然&#xff0c;不同的原型设计工具有一定的差异&#xff01;那么哪个原型设计工具更好呢&#xff1f;以下是一些有用的原型设计软件&#xff0c;有需要的朋友可以根据…

红队攻防实战之DEATHNOTE

难道向上攀爬的那条路&#xff0c;不是比站在顶峰更让人热血澎湃吗 渗透过程 获取ip 使用Kali中的arp-scan工具扫描探测 端口扫描 可以看到开放了22和80端口。 访问80端口&#xff0c;重定向到 修改hosts文件&#xff0c;将该域名解析到ip 如图 修改完再次访问&#xff0…

GEE——使用cart机器学习方法对Landsat影像条带修复以NDVI和NDWI为例(全代码)

简介 之前发表了两篇关于影像修复的文章,并且制作了APP,大家可以去看以下的两篇博客来了解具体的研究内容和整个方法的有效性: Google Earth Engine APP——影像条带色差、色调不均匀等现象解决方案Landsat5 NDWI Image Restoration APP_ndwi不能识别泛红水体怎么办-CSDN博…