作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 App.Config 中,我为我的控制台应用程序声明了一个配置部分:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
ConsoleAppender
:
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
RollingFile
在 app-startup 时作为我们标准代码库的一部分的日志 util 类中的 appender(不容易修改):
_hierarchy = (Hierarchy)LogManager.GetRepository();
_rollingFileAppender = new RollingFileAppender();
... //_rollingFileppender options
_rollingFileAppender.ActivateOptions();
_hierarchy.Root.AddAppender(_rollingFileAppender);
_hierarchy.Configured = true;
ILog
在调试器的实例中,我在
Logger.Appenders
中根本看不到附加程序但我确实看到了
RollingFileAppender
实例作为
Root.Appenders
中唯一的元素.
LogManager
在 app.config 中查看?
最佳答案
你只是让我好奇,我决定玩一下。
第一个观察结果是:你说得对 .
经过一些谷歌,我找到了这个 this
应用配置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level [%thread] %logger{1} %username - %message%newline" />
</layout>
<mapping>
<level value="WARN" />
<foreColor value="Yellow, HighIntensity" />
</mapping>
<mapping>
<level value="ERROR" />
<foreColor value="Red, HighIntensity" />
</mapping>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>
using log4net;
using log4net.Appender;
using log4net.Layout;
using log4net.Repository.Hierarchy;
namespace LoggerDemo
{
public static class Program
{
private static readonly ILog Logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public static void Main(string[] args)
{
SetupFileAppender();
SetupTraceAppender();
Logger.Error("Error");
}
private static void SetupTraceAppender()
{
var patternLayout = new PatternLayout();
patternLayout.ConversionPattern = "%date [%thread] %-5level %logger - %message%newline";
patternLayout.ActivateOptions();
var trace = new TraceAppender();
trace.Layout = patternLayout;
trace.ActivateOptions();
var l = (Logger)Logger.Logger;
l.AddAppender(trace);
}
private static void SetupFileAppender()
{
var patternLayout = new PatternLayout();
patternLayout.ConversionPattern = "%date [%thread] %-5level %logger - %message%newline";
patternLayout.ActivateOptions();
var roller = new RollingFileAppender();
roller.AppendToFile = true;
roller.File = "Log.txt";
roller.Layout = patternLayout;
roller.MaxSizeRollBackups = 5;
roller.RollingStyle = RollingFileAppender.RollingMode.Size;
roller.StaticLogFileName = true;
roller.ActivateOptions();
var l = (Logger)Logger.Logger;
l.AddAppender(roller);
}
}
}
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
关于c# - 为什么没有在 app.config 中配置 ConsoleAppender 导致日志写入控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62193472/
我正在使用 Gunicorn 为 Django 应用程序提供服务,它工作正常,直到我将其超时时间从 30 秒更改为 900000 秒,我不得不这样做,因为我有一个用例需要上传和处理一个巨大的文件(过程
我有一个带有非常基本的管道的Jenkinsfile,它可以旋转docker容器: pipeline { agent { dockerfile { args '-u root' } } stag
在学习 MEAN 堆栈的过程中,我遇到了一个问题。每当我尝试使用 Passport 验证方法时,它都不会返回任何响应。我总是收到“localhost没有发送任何数据。ERR_EMPTY_RESPONS
在当今的大多数企业堆栈中,数据库是我们存储所有秘密的地方。它是安全屋,是待命室,也是用于存储可能非常私密或极具价值的物品的集散地。对于依赖它的数据库管理员、程序员和DevOps团队来说,保护它免受所
是否可以创建像图片上那样的边框?只需使用 css 边框属性。最终结果将是没 Angular 盒子。我不想添加额外的 html 元素。我只想为每个 li 元素添加 css 边框信息。 假设这是一个 ul
我是一名优秀的程序员,十分优秀!