Log DD output if possible

This commit is contained in:
Jordan Brown
2020-05-14 22:27:43 -04:00
parent 89873d89e7
commit 7342cf1ea7
@@ -84,6 +84,11 @@ namespace Tgstation.Server.Host.Components.Session
/// </summary>
readonly ILoggerFactory loggerFactory;
/// <summary>
/// The <see cref="ILogger"/> for the <see cref="SessionControllerFactory"/>
/// </summary>
readonly ILogger<SessionControllerFactory> logger;
/// <summary>
/// The <see cref="Api.Models.Instance"/> for the <see cref="SessionControllerFactory"/>
/// </summary>
@@ -121,6 +126,7 @@ namespace Tgstation.Server.Host.Components.Session
/// <param name="bridgeRegistrar">The value of <see cref="bridgeRegistrar"/>.</param>
/// <param name="serverPortProvider">The value of <see cref="serverPortProvider"/>.</param>
/// <param name="loggerFactory">The value of <see cref="loggerFactory"/></param>
/// <param name="logger">The value of <see cref="logger"/>.</param>
public SessionControllerFactory(
IProcessExecutor processExecutor,
IByondManager byond,
@@ -134,6 +140,7 @@ namespace Tgstation.Server.Host.Components.Session
IBridgeRegistrar bridgeRegistrar,
IServerPortProvider serverPortProvider,
ILoggerFactory loggerFactory,
ILogger<SessionControllerFactory> logger,
Api.Models.Instance instance)
{
this.processExecutor = processExecutor ?? throw new ArgumentNullException(nameof(processExecutor));
@@ -149,6 +156,7 @@ namespace Tgstation.Server.Host.Components.Session
this.bridgeRegistrar = bridgeRegistrar ?? throw new ArgumentNullException(nameof(bridgeRegistrar));
this.serverPortProvider = serverPortProvider ?? throw new ArgumentNullException(nameof(serverPortProvider));
this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
/// <inheritdoc />
@@ -220,7 +228,20 @@ namespace Tgstation.Server.Host.Components.Session
byondLock.DreamDaemonPath,
basePath,
arguments,
noShellExecute,
noShellExecute,
noShellExecute: noShellExecute);
if (noShellExecute)
{
// Log DD output
_ = process.Lifetime.ContinueWith(
x => logger.LogTrace(
"DreamDaemon Output:{0}{1}",
Environment.NewLine, process.GetCombinedOutput()),
TaskScheduler.Current);
}
try
{
networkPromptReaper.RegisterProcess(process);