硬件管理平台-硬件产品库-日志模块
log4net
本项目使用的是log4net,实际上没有什么原因,也没有怎么进行选型,因为他比较符合log4j,因此选择了log4net,的确有些草率。
随着log4j爆出了大漏洞,只能希望log4net是没有的。
使用范围
使用log4net最主要是给硬件项目使用的,因为硬件项目是反射的代码,在现场时除了网关项目外,内部的代码是最难跟踪的,运行期间如果出现问题我们也无法还原,所以log4net主要用于硬件项目。
(相关资料图)
正文
在硬件项目中我们引用log4net模块,这样有个好处是可以定位到具体项目的位置,所以每个项目都需要引用一次log4net模块。
通过使用Nuget添加log4net的依赖
在HardwareGatewayProductization项目中添加log4net.config文件,并将其属性复制到输出路径改为:如果较新则复制。
log4net.config配置文件信息为
该xml表述了有两种类型的logger,分别为logerror和logerinfo,分别代表错误日志和日常输出日志。
在HardwareGatewayProductization项目的Properties->AssemblyInfo.cs添加
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]在HardwareGatewayProductization项目中添加log4net的声明,如果不添加系统会默认不引用,这样子就导致了硬件项目也无法引用成功
#region 添加log日志变量readonly ILog _loginfo = LogManager.GetLogger("loginfo");readonly ILog _logerror = LogManager.GetLogger("logerror");#endregion综上所述:最外层的项目(启动项目)必须将log4net的配置,引用,声明都走完,其子项目才能使用,否则无法生效,而且还不会报错。
只能通过调试发现_loginfo的相关属性都为false
而真正成功时_loginfo的属性下图所示:
在空调硬件项目中添加代码:TestAirConditionClient文件中添加logger的引用
#region 添加log日志变量readonly ILog _loginfo = LogManager.GetLogger("loginfo");readonly ILog _logerror = LogManager.GetLogger("logerror");#endregion我们以GetHardwareInfo方法为例,添加一个调用
public override HardwareProperties GetHardwareInfo(){ _loginfo.Info("空调测试的日志例子"); return new HardwareProperties("04", "0401", IAriConditionClient.Type, Model, null, null, Version, Describe, typeof(AirConditionInfo), OperationFun, null, TimeingFun, null);}在UtilsLibaray也添加log4net的引用,将其他项目中关于log4net的属性复制到本地都改为false。
写在最后
运行后会发现在产品库文件中新建了一个WebLog文件夹,其中LogInfo文件夹下的日志如下:
日志时间:2023-08-05 17:27:00,167 [1] 日志级别:INFO 消息描述:空调测试的日志例子 [_01TestAirConditionLibrary.TestAirConditionClient.GetHardwareInfo(G:\Working\笔记\MD笔记\开源项目\HardwareGatewayProject\Hardware\AirConditionLibrary\01TestAirCondition\TestAirConditionClient.cs:30)] 日志时间:2023-08-05 17:27:00,181 [1] 日志级别:ERROR 消息描述:空调测试的日志例子 [_01TestAirConditionLibrary.TestAirConditionClient.GetHardwareInfo(G:\Working\笔记\MD笔记\开源项目\HardwareGatewayProject\Hardware\AirConditionLibrary\01TestAirCondition\TestAirConditionClient.cs:31)] 可直接定位到具体文件的特定行,这样有助于我们查找问题。
关键词:
相关文章
-
硬件管理平台-硬件产品库-日志模块
-
郴州东江湖门票(东江湖门票)
-
成年人的顶级教养:说话有数,处事有余,相处有度
-
把权力关进制度的笼子里这句话出自哪个(把权力关进制度的笼子里
-
招商证券:海外今年哪些国家国别风险上升?
-
华为手机杀回前五:高端市场硬杠苹果,A股供应商撑起折叠屏和芯
-
北京将发放京彩绿色消费券
-
狂降80%!800亿巨头“爆雷”,13年来最差
-
外交部发言人就哥伦比亚政府和反政府武装临时停火协议生效答记者
-
星华新材(301077)7月31日股东户数1.08万户,较上期减少1.42%
-
要论进口合资品牌还的是卡特彼勒,不过近10年,在国货大卷特卷下
-
市场监管总局:汛期维护市场价格秩序稳定 不得捏造散布涨价信息
-
大运会 助推成都体育事业发展(大运聚焦)
-
安信证券给予数字政通买入评级 “一网统管”领军者 政务数据要
-
天风证券:看好水电资产今年Q3业绩修复
-
狂降80%!800亿巨头爆雷 13年来最差
-
天风证券:看好水电资产今年Q3业绩修复
-
国际热评:政客持续炒作涉华议题 美霸权 “风暴”终将反噬
-
TVB花旦疑移居加拿大陪女儿留学!嫁河南老公12年,夫妻聚少离多
-
图书馆大闯关!这场“城市温度·亲子挑战赛”快乐超级多
热点图集
-
1Instagram限制陌生人私信,只允许向未关注用户发送一条文字消息
-
2你说的白是什么白,色彩管理那些事儿
-
3dota炼金术士技能(dota炼金术士)
-
4新商盟云pos零售终端出现数据丢失怎么办(新商盟云pos零售终端)
-
5云南锗业: 独立董事关于控股股东及实际控制人为公司及子公司提供担保暨关联交易事项的事前认可意见
-
6阿里巴巴公益捐赠3000万元 驰援京津冀等地防汛救灾
-
7标致重新设计的2008 SUV将于今年第四季度进入澳大利亚展厅
-
8中央气象台8月5日18时发布大风蓝色预警
-
9《原神》4.0版本前瞻特别节目汇总 全新角色林尼登场
-
10午评:三大指数早盘冲高回落 证券板块涨幅居前