44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
using System.Diagnostics;
|
|
|
|
namespace OF_DL.Extensions;
|
|
|
|
internal static class LoggingExtensions
|
|
{
|
|
extension(Log)
|
|
{
|
|
public static ILogger ForProcessContext(Process process)
|
|
=> Log.Logger.ForProcessContext(process);
|
|
|
|
public static ILogger ForProcessContext(string propertyName, Process process)
|
|
=> Log.Logger.ForProcessContext(propertyName, process);
|
|
|
|
public static ILogger ForProcessContext(Process[] processes)
|
|
=> Log.Logger.ForProcessContext(processes);
|
|
}
|
|
|
|
extension(ILogger logger)
|
|
{
|
|
public ILogger ForProcessContext(Process process)
|
|
=> logger.ForProcessContext($"Process_{process.Id}", process);
|
|
|
|
public ILogger ForProcessContext(string propertyName, Process process)
|
|
=> logger.ForContext(propertyName, process.GenerateContext(), destructureObjects: true);
|
|
|
|
public ILogger ForProcessContext(Process[] processes)
|
|
{
|
|
ILogger l = logger;
|
|
|
|
foreach (Process p in processes)
|
|
l = l.ForProcessContext(p);
|
|
|
|
return l;
|
|
}
|
|
}
|
|
|
|
extension(Process p)
|
|
{
|
|
public object GenerateContext()
|
|
=> new { p.Id, p.ProcessName };
|
|
}
|
|
}
|