1. Один из лучших способов избежать использования нескольких файлов журнала и только глобального - объявить Log.Logger
в классе, поэтому все методы внутри класса будут использовать один и тот же журнал, вы также можете использовать его из метода вне текущего класса, если вы сделаете его общедоступным
вот пример:
class Program {
LoggerConfiguration ex = null; \\ or make it public if you want to call the log outside the local class
void Main(){
ex = new LoggerConfiguration()
.MinimumLevel.Information()
.Enrich.FromLogContext()
.WriteTo.File(string.Format("log/log-{0}.txt",DateTime.Now.ToString("yyyy-MM-dd--HH-mm-ss")), outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] ({SourceContext}.{Method}) {Message}{NewLine}{Exception}")
.WriteTo.Console(outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] ({SourceContext}.{Method}) {Message}{NewLine}{Exception}")
.CreateLogger();
Method();
}
void Method() {
ex.WriteTo.File(string.Format("/"));
}
}
2 - Вы также можете отправить файл журнала методу в качестве параметра.
LoggerConfiguration ex = new LoggerConfiguration();
Method(ex);
И параметр метода должен быть, например,
int Method(LoggerConfiguration ex)
{
// rest of your code
return(0);
}