我是log4net的新手,并且想创建一个执行以下操作的简单控制台应用程序:
读取数字作为输入
循环很多次
MM/DD/YYYY
-输入:<num>
-时间:<time>
ms
在我的AssemblyInfo.cs中,添加了以下行:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
我的App.config看起来像这样:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="MyLog.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%dateExtra Info: %property{input}%property{time}%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="FATAL" />
</filter>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="FileAppender"/>
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
我的代码如下:
using log4net;
using System;
using System.Diagnostics;
namespace ConsoleApplication1
{
class Program
{
private static long num;
private static readonly ILog log = LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
static void Main(string[] args)
{
Console.Write("Please enter a number: ");
try
{
// gets number as input
num = long.Parse(Console.ReadLine());
if (num <= 0) throw new Exception("Number must be positive and non zero");
}
catch (FormatException e)
{
Console.WriteLine(e.Message);
Console.Read();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.Read();
}
// create new stopwatch instance
Stopwatch sw = new Stopwatch();
// starts the timer
sw.Start();
// runs loop [num] times
for (long i = 0; i < num; i++) ;
// stops the timer
sw.Stop();
Console.WriteLine("Loop ran for {0}ms", sw.ElapsedMilliseconds);
GlobalContext.Properties["input"] = " - Input : " + num;
GlobalContext.Properties["time"] = " - Time : " + sw.ElapsedMilliseconds + "ms";
Console.Read();
}
}
}
确实创建了文件,但创建的文件为空。这可能是什么问题?
答案 0 :(得分:2)
您需要使用
之类的命令记录某些内容fun <T> doJob(valOne: T, valTwo: T){
}
那就像
log.Info(string.Format("Input: {0} - Time: {1}ms", input, time));