zoukankan      html  css  js  c++  java
  • VisionPro Designer中使用Log4net实现日志功能

    log4net是一个可以帮助程序员把日志信息输出到各种 不同目标的.net类库。它可以容易的加载到开发项目中,实现程序调试和运行的时候的日志信息输出,提供了比.net自己提供的debug类和trace 类的功能更多。在康耐视Designer中使用的方法如下:

    1.引用程序集并添加命名空间

    在“外部程序集”中添加log4net路径–>在“脚本”页中添加对程序集的引用(包括XML程序集)–>添加所需命名空间
    添加log4net程序集
    引用程序集以及命名空间
    添加命名空间

    2.定义全局变量

    在“标记管理器”页创建Log对象,标记管理器中的变量相当于全局变量,选择数据类型为Log4net.ILog,创建步骤如下图:
    创建ILog对象

    3.设置log格式与读取log配置文件

    ①创建log的配置文件(创建log4net.config文件,文件内容为对log的详细配置,具体内容如下,本例将该文件放在D盘根目录下D:log4net.config)

     1 <?xml version="1.0" encoding="utf-8" ?>
     2 <configuration>
     3 <configSections>
     4 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
     5 </configSections>
     6 <log4net>
     7 <logger name="logerror">
     8 <level value="ERROR" />
     9 <appender-ref ref="ErrorAppender" />
    10 </logger>
    11 <logger name="loginfo">
    12 <level value="INFO" />
    13 <appender-ref ref="InfoAppender" />
    14 </logger>
    15 <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
    16 <!--设置日志存储路径-->
    17 <param name="File" value="D:\log" />
    18 <!--是否追加到文件-->
    19 <param name="AppendToFile" value="true" />
    20 <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
    21 <param name="MaxSizeRollBackups" value="100" />
    22 <param name="MaxFileSize" value="1024" />
    23 <!--是否只写到一个文件中-->
    24 <param name="StaticLogFileName" value="false" />
    25 <!--这是按日期产生文件夹,并在文件名前也加上日期-->
    26 <param name="DatePattern" value="yyyyMM/dd&quot;.log&quot;" />
    27 <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
    28 <param name="RollingStyle" value="Date" />
    29 <layout type="log4net.Layout.PatternLayout">
    30 <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception%n%n " />
    31 </layout>
    32 </appender>
    33 <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
    34 <!--设置日志存储路径-->
    35 <param name="File" value="D:\log" />
    36 <!--是否追加到文件-->
    37 <param name="AppendToFile" value="true" />
    38 <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数-->
    39 <param name="MaxSizeRollBackups" value="100" />
    40 <param name="MaxFileSize" value="1024" />
    41 <!--是否只写到一个文件中-->
    42 <param name="StaticLogFileName" value="false" />
    43 <!--这是按日期产生文件夹,并在文件名前也加上日期-->
    44 <param name="DatePattern" value="yyyyMM/dd&quot;.log&quot;" />
    45 <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
    46 <param name="RollingStyle" value="Date" />
    47 <layout type="log4net.Layout.PatternLayout">
    48 <param name="ConversionPattern" value="%n日志时间:%d [%t] 日志级别:%-5p 消息描述:%c [%x] %m " />
    49 </layout>
    50 </appender>
    51 </log4net>
    52 </configuration>

    ②读取log配置文件
    添加启动脚本,配置log参数
    脚本具体内容为:

     1 //读取log配置文件
     2 string path="D:\log4net.config";
     3 var fi = new System.IO.FileInfo(path);
     4 //调用log4net相关接口对log进行配置
     5 log4net.Config.XmlConfigurator.Configure(fi);
     6 //初始化log对象
     7 $Loginfo = log4net.LogManager.GetLogger("loginfo");
     8 //在不同线程进行写log测试
     9 $Tasks.Task.RunAsync();
    10 $Tasks.Task1.RunAsync();

    4.log写入

    创建两个task,在各自的task中添加脚本块,将日志在不同task(不同线程)中写入,作为测试,每个脚本块写10000行数据。
    在不同task中写log测试
    日志内容:

    在这里插入图片描述
    写入第一条log与最后一条用时不到3s,共计20000条信息
    日志时间:2020-11-12 13:52:45,507 [12] 日志级别:INFO 消息描述:loginfo [(null)] Test111:0----task1-----
    日志时间:2020-11-12 13:52:48,302 [12] 日志级别:INFO 消息描述:loginfo [(null)] Test111:9999----task1-----

  • 相关阅读:
    linq 喜悦
    五班二组高级软件测试作业一总结
    五班二组高级软件测试进度报告
    五班二组黑盒测试实践作业进度报告(1)
    五班二组高级软件测试进度报告
    五班二组高级软件测试进度报告
    [ 语文 ] 西游记50~52回阅读笔记
    [ 具体数学 ] 0:前言
    [ 具体数学 ] 3:和式与封闭式
    [ 历史 ] 黄巢起义
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14266259.html
Copyright © 2011-2022 走看看