首页 > 其他分享 >log4net 输出到VS的Output窗口

log4net 输出到VS的Output窗口

时间:2023-06-20 11:11:19浏览次数:46  
标签:log4net 输出 窗口 ConsoleAppender console VS Output was

让log4net输出到文件,只花了一分钟时间,但为了同时能在Visual studio的output窗口也同步输出,花了很多时间。一般都认为output窗口就是console,然而并不是那样的。

引用这个帖子:https://stackoverflow.com/questions/20888674/log4net-outputting-file-but-not-to-debug-window

This was driving me crazy! I was able to setup logging in node.js with log4js < 5 mins, trying to use log4net took so long because I thought the vs debug window WAS the console, so I was mistakenly using the ConsoleAppender as well once I figured out the janky xml config for log4net. 

– Jacob McKay

 Apr 1, 2016 at 22:15

所以答案就是不要用ConsoleAppender 而是要用TraceAppender。

再贴一下原贴的config:

 <log4net>
    <!--
  This writes the log information to the console window.  It only logs events
  that are at least at the INFO level (which would mean that DEBUG events are not
  captured.
  -->
    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
      <filter type="log4net.Filter.StringMatchFilter">
        <stringToMatch value="test"/>
      </filter>
      <filter type="log4net.Filter.StringMatchFilter">
        <stringToMatch value="error"/>
      </filter>
      <filter type="log4net.Filter.DenyAllFilter"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/>
      </layout>
    </appender>
    <!--
  This stores information in the logfile.txt file.  It only captures log events
  that contain the key word test or error.
  -->
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="C:\TOPS\LOGFILES\logfile.txt"/>
      <appendToFile value="true"/>
      <rollingStyle value="Size"/>
      <maxSizeRollBackups value="5"/>
      <maximumFileSize value="10MB"/>
      <staticLogFileName value="true"/>
      <filter type="log4net.Filter.StringMatchFilter">
        <stringToMatch value="test"/>
      </filter>
      <filter type="log4net.Filter.StringMatchFilter">
        <stringToMatch value="error"/>
      </filter>
      <filter type="log4net.Filter.DenyAllFilter"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/>
      </layout>
    </appender>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="RollingFileAppender"/>
      <appender-ref ref="TraceAppender"/>
    </root>
  </log4net>

 

标签:log4net,输出,窗口,ConsoleAppender,console,VS,Output,was
From: https://www.cnblogs.com/crazyghostvon/p/log4nettrace.html

相关文章

  • Proj. CAR Paper Reading: Augmenting Decompiler Output with Learned Variable Name
    Abstract背景:decompilers难以恢复注释、variablenames,customvariabletypes本文:工具:DIRTY((DecompIledvariableReTYper)方法:postprocessesdecompiledfiles基于:Transformer训练数据:Github效果:实验:outperformspriorworkapproachesbyasizablemargin......
  • python3 subprocess.getoutput(cmd) 执行linux命令进入交互模式后一直卡住了
    进入交互模式是我们预期之外的,记录一下。进入交互之后linux一直等待你的输入,所有subprocess.getoutput()就一直卡着呢~,我们加入timeout通过学习subprocess中支持timeout有:getoutput并不支持timeout参数尝试了callcheck_allcheck_output这几个方法之后并不能解决Linux交......
  • 声明式API replica controller vs replica set 对比
    1.在命令式API中,你可以直接发出服务器要执行的命令,例如: “运行容器”、“停止容器”等。在声明性API中,你声明系统要执行的操作,系统将不断向该状态驱动。可以想象成手动驾驶和自动驾驶系统。(多了会删除,少了会自动增加)  因此,在Kubernetes中,你创建一个API对象(使用CLI或RESTAPI)来表......
  • .Net Core Mvc 2. VS2022 + Core6.0 + Mvc 添加视图,传递数据
    添加视图找到控制器HelloWorldController的叫Index的Action在上面右键,选择添加视图,选择空,确认后会在Views文件夹下新建一个HelloWorld文件夹,并生成Index.cshtml文件。直接运行 可以看到Index视图有默认的头部内容和底部内容(太长了没截取),这个效果是在Views\Shared文件夹下的_......
  • 在.Net Core6中使用log4net组件写日志到本地文件的操作流程
    原文链接:https://blog.csdn.net/kevin860/article/details/1068810621.引用包: Log4Net  Microsoft.Extensions.Logging.Log4Net.AspNetCore Microsoft.Extensions.Logging //loggingbuilder.AddFilter该方法需要引入Microsoft.Extensions.Logging名称空间 ......
  • POSTGRESQL 高可用 Patroni VS Repmgr 到底哪家强(1)
    在众多postgresql高可用模式中,主要的参与者有两位,PatroniVSrepmgr基于这二者的功能优点以及缺点相信大部分人都不是太明确,下面将根据两篇翻译的文字合并,来对两个高可用的程序来做一个比较,consandpros。 1 Repmgr是一款开源的基于postgres复制基础上的高可用软件,他基于2......
  • MYSQL MHA VS GTID 与 BINLOG SERVER
    勘误,昨天有一位海外friend指出昨天文中postgresql bloom中的第四步截图是并行扫描,而没有用到bloom索引,这里抱歉,经查实截图错误,下面是重新的截图,同时另一幅截图也有问题建立索引时缺少USINGbloom,感谢您。另也希望大家发现可以发现我的错误,并及时指出,让我们大家可以成长的......
  • VsCode配置PHP断点调试环境笔记
    PHPStudy_Pro8.1.1.2VsCode1.51.1PHP7.4.3NTSPHP_Xdebug-2.9.8-7.4-vc15-nts-x86_64首先查看当前环境的phpinfo信息根据phpinfo的信息选择对应的XDebug进行下载:https://xdebug.org/download推荐使用:https://xdebug.org/wizard,将phpinfo的信息全选复制到这里进行分析,然后下......
  • vs编译时打印Task中日志。
    https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-build-v|--verbositySetstheverbositylevelofthecommand.Allowedvaluesareq[uiet],m[inimal],n[ormal],d[etailed],anddiag[nostic].Thedefaultisminimal.Bydefault,MSBuilddisplay......
  • VScode 中利用virtualenv建立 Python 虚拟环境
    !https://zhuanlan.zhihu.com/p/638114885VScode建立Python虚拟环境主要目的:创建一个与默认python版本不同的python虚拟环境0x01建立新环境文件夹建立一个独立文件夹来存储所有虚拟环境,所以可以事先建好文件夹如:'''E:\WorkSpace\Work\chatGLM'''0x02创建虚拟环......