我正在使用.Net CORE,我正在编写一个程序,可以将日志打印到屏幕上,并将日志保存到文件中。 所以我的整个代码都是这样的:
Console.WriteLine("starting app");
Log.Debug("stating app");
if (args.Length < 2)
{
Log.Debug("got less than 2 arguments");
Console.WriteLine("Should be run with arguments:");
Console.WriteLine("<DirecotryPath> <OutputPath>");
return;
我的代码中是否存在阻止此重复的问题? 谢谢
答案 0 :(得分:3)
自定义方法
您可以创建自己的方法,该方法将记录到所有目的地:
public void Log(string message) {
Log.Debug(message);
Console.WriteLine(message);
}
从现在开始,您只需调用新创建的Log
方法:
Log("stating app");
它会记录到两个目的地......
框架方法
有许多框架可以解决这个问题。 e.g。 log4net的 查看@Hany Habib's answer了解更多详情:
答案 1 :(得分:1)
对于代码重复,您可以创建一个名为
的常用方法public void Log(string message,Source source) // Source is Enum to check to print on screen or file or both for example
{
switch(source)
{
Case Source.Screen:
Console.WriteLine(message);
break;
Case Source.Log:
Log.Debug(message);
break;
default:
break;
}
}
这是为了简单的日志记录,你可以使用Log4Net,它只使用一些配置为你提供了大量的日志记录工具和下面的指南