我在我的项目中使用nlog logger.
我的程序根据从sql server获取的数据生成xml文件.我正在用PLINQ做这个.但我也必须记录跟踪信息,以便能够对prod环境中的特殊情况进行一些调查.
当来自多个线程时,结果日志看起来很糟糕.例如:
Operation 1 starded
Deserializing XXX
Operation 2 started
Deserializing XXX finished with status X
Filling XXX with data from Z
Deserializing YYY....
Run Code Online (Sandbox Code Playgroud)
它只是为了并行度2.
我想看到这样的结果:
Operation 1 starded
Deserializing XXX
Deserializing XXX finished with status X
Filling XXX with data from Z
Operation 1 finished
Operation 2 started
Deserializing YYY....
Run Code Online (Sandbox Code Playgroud)
我看到了一些解决方案,但它们看起来不够好:
这个问题有一些干净的解决方案吗?
我正在编写一个方法扩展的小库.
例如,我们有扩展方法
public static T GetRandom<T>(this IEnumerable<T> collection)
Run Code Online (Sandbox Code Playgroud)
当集合为空时,哪种异常ArgumentNullException或NullReferenceException最明显?或者是其他东西?