Store logs in /var/log by default on POSIX

This commit is contained in:
Jordan Brown
2020-07-08 22:48:14 -04:00
parent 01c9c64e4f
commit 6d0c87dfc5
3 changed files with 19 additions and 7 deletions
@@ -54,20 +54,29 @@ namespace Tgstation.Server.Host.Configuration
/// </summary>
/// <param name="ioManager">The <see cref="IIOManager"/> to use.</param>
/// <param name="assemblyInformationProvider">The <see cref="IAssemblyInformationProvider"/> to use.</param>
/// <param name="platformIdentifier">The <see cref="IPlatformIdentifier"/> to use</param>
/// <returns>The evaluated log <see cref="Directory"/>.</returns>
public string GetFullLogDirectory(IIOManager ioManager, IAssemblyInformationProvider assemblyInformationProvider)
public string GetFullLogDirectory(
IIOManager ioManager,
IAssemblyInformationProvider assemblyInformationProvider,
IPlatformIdentifier platformIdentifier)
{
if (ioManager == null)
throw new ArgumentNullException(nameof(ioManager));
if (assemblyInformationProvider == null)
throw new ArgumentNullException(nameof(assemblyInformationProvider));
if (platformIdentifier == null)
throw new ArgumentNullException(nameof(platformIdentifier));
var directoryToUse = platformIdentifier.IsWindows
? Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) // C:/ProgramData
: "/var/log"; // :pain:
return !String.IsNullOrEmpty(Directory)
? Directory
: ioManager.ConcatPath(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), // common app data is C:/ProgramData on windows, else /usr/share
assemblyInformationProvider.VersionPrefix,
"Logs");
directoryToUse,
assemblyInformationProvider.VersionPrefix);
}
}
}
@@ -330,7 +330,7 @@ namespace Tgstation.Server.Host.Controllers
[ProducesResponseType(typeof(ErrorMessage), 409)]
public async Task<IActionResult> ListLogs(CancellationToken cancellationToken)
{
var path = fileLoggingConfiguration.GetFullLogDirectory(ioManager, assemblyInformationProvider);
var path = fileLoggingConfiguration.GetFullLogDirectory(ioManager, assemblyInformationProvider, platformIdentifier);
try
{
var files = await ioManager.GetFiles(path, cancellationToken).ConfigureAwait(false);
@@ -378,7 +378,7 @@ namespace Tgstation.Server.Host.Controllers
throw new ArgumentNullException(nameof(path));
var fullPath = ioManager.ConcatPath(
fileLoggingConfiguration.GetFullLogDirectory(ioManager, assemblyInformationProvider),
fileLoggingConfiguration.GetFullLogDirectory(ioManager, assemblyInformationProvider, platformIdentifier),
path);
try
{
@@ -122,7 +122,10 @@ namespace Tgstation.Server.Host.Core
if (postSetupServices.FileLoggingConfiguration.Disable)
return;
var logPath = postSetupServices.FileLoggingConfiguration.GetFullLogDirectory(IOManager, AssemblyInformationProvider);
var logPath = postSetupServices.FileLoggingConfiguration.GetFullLogDirectory(
IOManager,
AssemblyInformationProvider,
postSetupServices.PlatformIdentifier);
var logEventLevel = ConvertSeriLogLevel(postSetupServices.FileLoggingConfiguration.LogLevel);