C# 是否只希望日志存储在记录器中,而不显示在控制台中?
使用来自以下站点的log4net示例: 我正在使用命令输入参数“User”或“NoUser”。 用户只将文本输出到控制台,而NoUser只将文本输出到日志文件。从这个例子中,我已经让它工作了,但是当输入'NoUser'时,它会将文本写入输出文件和控制台应用程序 因此,我使用静态类设置用户/无用户:C# 是否只希望日志存储在记录器中,而不显示在控制台中?,c#,log4net,C#,Log4net,使用来自以下站点的log4net示例: 我正在使用命令输入参数“User”或“NoUser”。 用户只将文本输出到控制台,而NoUser只将文本输出到日志文件。从这个例子中,我已经让它工作了,但是当输入'NoUser'时,它会将文本写入输出文件和控制台应用程序 因此,我使用静态类设置用户/无用户: public static class Log { public static readonly ILog log = LogManager.GetLogger(typeof(Program)
public static class Log
{
public static readonly ILog log = LogManager.GetLogger(typeof(Program));
public static bool _user;
public static void UseLog4Net(string msg)
{
if (_user)
{
Console.WriteLine(msg);
}
else
{
log.Debug(msg);
}
}
}
然后从我尝试测试的程序中:
assembly: log4net.Config.XmlConfigurator(Watch = true)]
static void Main(string[] args)
{
bool verbose = false;
bool user = false;
try
{
OutputHeader();
ProcessParameters(args, out verbose, out user);
Log._verbose = verbose;
Log._user = user;
}
}
private static void ProcessParameters(string[] args, out bool verbose, out bool user)
{
verbose = CheckArgs(args, "verbose", "quiet");
user = CheckArgs(args, "user", "nouser");
if (!user)
{
Console.WriteLine("TEST 1");
//Console.SetOut(File.CreateText(@".\log" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".log"));
log4net.Config.BasicConfigurator.Configure();
Log.UseLog4Net("ABC");
Console.ReadLine();
OutputHeader();
}
}
private static bool CheckArgs(string[] args, string trueValue, string falseValue)
{
foreach (string arg in args)
{
if (arg.ToLower() == trueValue.ToLower())
{
return true;
}
else if (arg.ToLower() == falseValue.ToLower())
{
return false;
}
}
return false;
}
这里ABC被写入控制台和文本文件。我只希望它被写入文本文件
有什么想法吗
更新
请显示用户是什么。您是否绝对肯定这是唯一正在执行的代码?你的log4net配置看起来怎么样?关于你的编辑:你还没有告诉我们任何事情。什么是用户?用户是来自命令行参数的输入参数,用户将在控制台应用程序中显示文本,nouser将仅在文本文件中显示文本。请添加演示如何获取用户值的代码。当您只需执行user=true;,它是否有效;?没有代码可以获取值,我右键单击项目,从“调试”选项卡中选择属性,在“开始选项”中,我在命令行参数中输入“DownloadDept verbose nouser”
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="C:\Try\logger\logger\bin\Debug\log + "Monday" + .txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
</layout>
</appender>
</log4net>