|
|
|
@ -154,8 +154,13 @@ namespace MediaBrowser.Server.Mono
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static async Task createLogger()
|
|
|
|
|
private static void createLogger()
|
|
|
|
|
{
|
|
|
|
|
var logDir = Environment.GetEnvironmentVariable("JELLYFIN_LOG_DIR");
|
|
|
|
|
if (string.IsNullOrEmpty(logDir)){
|
|
|
|
|
logDir = Path.Combine(_appPaths.ProgramDataPath, "logs");
|
|
|
|
|
Environment.SetEnvironmentVariable("JELLYFIN_LOG_DIR", logDir);
|
|
|
|
|
}
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string path = Path.Combine(_appPaths.ProgramDataPath, "logging.json");
|
|
|
|
@ -168,11 +173,13 @@ namespace MediaBrowser.Server.Mono
|
|
|
|
|
using (Stream rscstr = assembly.GetManifestResourceStream(resourcePath))
|
|
|
|
|
using (Stream fstr = File.Open(path, FileMode.CreateNew))
|
|
|
|
|
{
|
|
|
|
|
await rscstr.CopyToAsync(fstr);
|
|
|
|
|
rscstr.CopyTo(fstr);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var configuration = new ConfigurationBuilder()
|
|
|
|
|
.AddJsonFile(path)
|
|
|
|
|
.SetBasePath(_appPaths.ProgramDataPath)
|
|
|
|
|
.AddJsonFile("logging.json")
|
|
|
|
|
.AddEnvironmentVariables("JELLYFIN_")
|
|
|
|
|
.Build();
|
|
|
|
|
|
|
|
|
|
Serilog.Log.Logger = new LoggerConfiguration()
|
|
|
|
@ -185,7 +192,7 @@ namespace MediaBrowser.Server.Mono
|
|
|
|
|
Serilog.Log.Logger = new LoggerConfiguration()
|
|
|
|
|
.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss}] [{Level:u3}] {Message:lj}{NewLine}{Exception}")
|
|
|
|
|
.WriteTo.File(
|
|
|
|
|
Path.Combine(AppContext.BaseDirectory, "logs", "log_.log"),
|
|
|
|
|
Path.Combine(logDir, "logs", "log_.log"),
|
|
|
|
|
rollingInterval: RollingInterval.Day,
|
|
|
|
|
outputTemplate: "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}] [{Level:u3}] {Message}{NewLine}{Exception}")
|
|
|
|
|
.Enrich.FromLogContext()
|
|
|
|
|