Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

using System;
using UnityEngine;
using VoltstroStudios.UnityWebBrowser.Shared;

namespace VoltstroStudios.UnityWebBrowser.Logging
{
Expand All @@ -18,32 +19,43 @@ public sealed class DefaultUnityWebBrowserLogger : IWebBrowserLogger
private const string LoggingTag = "[UWB]";

private readonly ILogger logger;

private LogSeverity logSeverity;

/// <summary>
/// A function that defines how sensitive data should be redacted.
/// If null, no redaction is applied.
/// </summary>
public Func<string, string>? redactionHandler;

public DefaultUnityWebBrowserLogger(Func<string, string>? redactionHandler = null)
public DefaultUnityWebBrowserLogger(LogSeverity logSeverity = LogSeverity.Info, Func<string, string>? redactionHandler = null)
{
logger = UnityEngine.Debug.unityLogger;
this.logSeverity = logSeverity;
this.redactionHandler = redactionHandler;
}

public void Debug(object message)
{
logger.Log(LogType.Log, LoggingTag, redactIfRequired(message));
if (ShouldLog(LogSeverity.Debug))
logger.Log(LogType.Log, LoggingTag, redactIfRequired(message));
}

public void Warn(object message)
{
logger.LogWarning(LoggingTag, redactIfRequired(message));
if (ShouldLog(LogSeverity.Warn))
logger.LogWarning(LoggingTag, redactIfRequired(message));
}

public void Error(object message)
{
logger.LogError(LoggingTag, redactIfRequired(message));
if (ShouldLog(LogSeverity.Error))
logger.LogError(LoggingTag, redactIfRequired(message));
}

private bool ShouldLog(LogSeverity severity)
{
return severity >= logSeverity;
}

private object redactIfRequired(object message)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,17 @@ public async UniTask Init(int engineStartupTimeoutMs, bool redactTokensInLogs, F
webBrowserClient.noSandbox = true;

// Log level
webBrowserClient.logSeverity = PassportLogger.CurrentLogLevel switch
var logSeverity = PassportLogger.CurrentLogLevel switch
{
LogLevel.Debug => LogSeverity.Debug,
LogLevel.Warn => LogSeverity.Warn,
LogLevel.Error => LogSeverity.Error,
_ => LogSeverity.Info
};
webBrowserClient.logSeverity = logSeverity;

// Logger
webBrowserClient.Logger = new DefaultUnityWebBrowserLogger(redactionHandler: redactTokensInLogs ? redactionHandler : null);
webBrowserClient.Logger = new DefaultUnityWebBrowserLogger(logSeverity: logSeverity, redactionHandler: redactTokensInLogs ? redactionHandler : null);

// Js
webBrowserClient.jsMethodManager = new JsMethodManager { jsMethodsEnable = true };
Expand Down
Loading