diff --git a/src/Tgstation.Server.Host/Configuration/FileLoggingConfiguration.cs b/src/Tgstation.Server.Host/Configuration/FileLoggingConfiguration.cs
index f795ce521c..e8e36190cf 100644
--- a/src/Tgstation.Server.Host/Configuration/FileLoggingConfiguration.cs
+++ b/src/Tgstation.Server.Host/Configuration/FileLoggingConfiguration.cs
@@ -54,20 +54,29 @@ namespace Tgstation.Server.Host.Configuration
///
/// The to use.
/// The to use.
+ /// The to use
/// The evaluated log .
- 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);
}
}
}
diff --git a/src/Tgstation.Server.Host/Controllers/AdministrationController.cs b/src/Tgstation.Server.Host/Controllers/AdministrationController.cs
index 7a0219d18f..13b21a8d4c 100644
--- a/src/Tgstation.Server.Host/Controllers/AdministrationController.cs
+++ b/src/Tgstation.Server.Host/Controllers/AdministrationController.cs
@@ -330,7 +330,7 @@ namespace Tgstation.Server.Host.Controllers
[ProducesResponseType(typeof(ErrorMessage), 409)]
public async Task 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
{
diff --git a/src/Tgstation.Server.Host/Core/Application.cs b/src/Tgstation.Server.Host/Core/Application.cs
index f07cdee7fa..cad2b6970f 100644
--- a/src/Tgstation.Server.Host/Core/Application.cs
+++ b/src/Tgstation.Server.Host/Core/Application.cs
@@ -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);