使用Microsoft.Extensions.Logging框架可以很方便地实现按类名写入不同的日志文件。你可以通过配置LoggerProvider来实现此功能。下面是一个示例代码,演示如何按类名将日志写入不同的日志文件:
using Microsoft.Extensions.Logging;
using System;
public class ClassNameLoggerProvider : ILoggerProvider
{
private readonly string logFolderPath; // 日志文件夹路径
public ClassNameLoggerProvider(string folderPath)
{
logFolderPath = folderPath;
}
public ILogger CreateLogger(string categoryName)
{
var className = categoryName.Substring(categoryName.LastIndexOf(".") + 1); // 获取类名
var logger = new ClassNameLogger(className, logFolderPath);
return logger;
}
public void Dispose()
{
// 可以在这里释放资源
}
}
public class ClassNameLogger : ILogger
{
private readonly string className;
private readonly string logFolderPath;
public ClassNameLogger(string name, string folderPath)
{
className = name;
logFolderPath &