我使用NLog进行下一个配置:
<targets>
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="f" />
</rules>
Run Code Online (Sandbox Code Playgroud)
我试图获得(我检查,集合中只有一个FileTarget)的FileName属性FileTarget
NLog.LogManager.GetCurrentClassLogger().Info("test");
var logFile = (from t in NLog.LogManager.Configuration.AllTargets
where t is NLog.Targets.FileTarget
select (NLog.Targets.FileTarget)t).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
但是logFile.FileName只包含文件名的模式,确切地说它是如何在设置中指定的.
如何获取当前日志文件的运行时路径?
class Sample
{
public static T M<T, TParam1>(TParam1 param1)
{
return default(T);
}
}
class Program
{
static void Main(string[] args)
{
double d = Sample.M((int)121);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码不编译并导致以下错误消息:
无法从用法推断出方法'ThreadPoolTest.Sample.M(TParam1)'的类型参数.尝试显式指定类型参数
为什么在这个例子中没有类型推断?
在LINQPad(.NET)中,所有这些表达式都返回"True":
new Regex(@"\w{0}").IsMatch("aa aa ZZ Z").Dump();
new Regex(@"(\w){0}").IsMatch("aa aa ZZ Z").Dump();
new Regex(@"[\w]{0}").IsMatch("aa aa ZZ Z").Dump();
new Regex(@"([\w]){0}").IsMatch("aa aa ZZ Z").Dump();
new Regex(@"\w{0,0}").IsMatch("aa aa ZZ Z").Dump();
new Regex(@"(\w){0,0}").IsMatch("aa aa ZZ Z").Dump();
new Regex(@"[\w]{0,0}").IsMatch("aa aa ZZ Z").Dump();
new Regex(@"([\w]){0,0}").IsMatch("aa aa ZZ Z").Dump();
new Regex(@"([a]){0,0}").IsMatch("aaaaZZZ").Dump();
Run Code Online (Sandbox Code Playgroud)
为什么?