Files
AIC-Project/Client/PackageLocal/com.unity.pipeline@0.4.0-exp.1/Runtime/Commands/RuntimeLogCommand.cs
T

49 lines
1.7 KiB
C#

using Unity.Pipeline.Commands;
using UnityEngine;
namespace Unity.Pipeline.Runtime.Commands
{
/// <summary>
/// Runtime logging commands for Unity Player builds.
/// Provides console logging capabilities from CLI.
/// </summary>
public static class RuntimeLogCommand
{
[CliCommand("log", "Write a message to Unity console", MainThreadRequired = true, RuntimeOnly = true)]
public static string LogMessage(
[CliArg("message", "Message to log to console", Required = true)] string message,
[CliArg("level", "Log level: info, warning, error")] string level = "info")
{
if (string.IsNullOrWhiteSpace(message))
{
return "Error: Message cannot be empty";
}
Debug.developerConsoleVisible = false;
var logLevel = level?.ToLowerInvariant() ?? "info";
switch (logLevel)
{
case "info":
case "log":
Debug.Log($"[Pipeline] {message}");
return $"Logged info message: {message}";
case "warning":
case "warn":
Debug.LogWarning($"[Pipeline] {message}");
return $"Logged warning message: {message}";
case "error":
case "err":
Debug.LogError($"[Pipeline] {message}");
return $"Logged error message: {message}";
default:
Debug.LogWarning($"[Pipeline] Unknown log level '{level}', defaulting to info: {message}");
Debug.Log($"[Pipeline] {message}");
return $"Logged message with default level: {message}";
}
}
}
}