private void InitLogging(IContainer container)
{
var settings = container.Resolve<ISettings>();
if (settings.LogLoggingDebugInfo)
{
var logsPath = string.IsNullOrEmpty(Environment.GetEnvironmentVariable("WEBSITE_SITE_NAME"))
? HostingEnvironment.ApplicationPhysicalPath
: Path.Combine(Environment.GetEnvironmentVariable("HOME"), "LogFiles");
var file = File.CreateText(Path.Combine(logsPath, $"serilog-{Environment.GetEnvironmentVariable("WEBSITE_INSTANCE_ID")?.Substring(0, 7)}.log"));
Serilog.Debugging.SelfLog.Out = TextWriter.Synchronized(file);
}
FunctionsTrace.Diagnostics = CreateLogger(settings, "functions-diagnostics-{Date}.txt", "Diagnostics");
FunctionsTrace.Analytics = CreateLogger(settings, "functions-analytics-{Date}.txt", "Analytics");
FunctionsTrace.Performance = CreateLogger(settings, "functions-performance-{Date}.txt", "Performance", new Collection<DataColumn>
{
new DataColumn {DataType = typeof(string), ColumnName = "OperationName" },
new DataColumn {DataType = typeof(int), ColumnName = "TimeTakenMsec" },
new DataColumn {DataType = typeof(string), ColumnName = "OperationResult" },
new DataColumn {DataType = typeof(DateTime), ColumnName = "StartedTime" }
});
}