-- Compiled with roblox-ts v1.2.7 local TS = _G[script] local GetCommandService = TS.import(script, script.Parent).GetCommandService local Lazy = TS.import(script, script.Parent.Parent, "Shared", "Lazy") local ZirconLogLevel = TS.import(script, script.Parent.Parent, "Client", "Types").ZirconLogLevel local Remotes = TS.import(script, script.Parent.Parent, "Shared", "Remotes").default local StandardOutput = Remotes.Server:Create("ZrSiO4/StandardOutput") local StandardError = Remotes.Server:Create("ZrSiO4/StandardError") local ZirconLogService = {} do local _container = ZirconLogService local outputMessages = {} local Registry = Lazy(function() return GetCommandService("RegistryService") end) --[[ * * @internal ]] local function writeServerLogMessage(level, tag, message, data) local _arg0 = { type = "ZirconStandardOutput", tag = tag, message = message, data = data, level = level, time = DateTime.now().UnixTimestamp, } local outputMessage = _arg0 -- ▼ Array.push ▼ outputMessages[#outputMessages + 1] = outputMessage -- ▲ Array.push ▲ local loggablePlayers = Registry.InternalGetPlayersWithPermission("CanRecieveServerLogMessages") StandardOutput:SendToPlayers(loggablePlayers, outputMessage) end --[[ * * @internal ]] local function writeServerErrorMessage(level, tag, message, data) local _arg0 = { type = "ZirconStandardError", tag = tag, message = message, data = data, level = level, time = DateTime.now().UnixTimestamp, } local outputError = _arg0 -- ▼ Array.push ▼ outputMessages[#outputMessages + 1] = outputError -- ▲ Array.push ▲ local loggablePlayers = Registry.InternalGetPlayersWithPermission("CanRecieveServerLogMessages") StandardError:SendToPlayers(loggablePlayers, outputError) end --[[ * * @internal ]] local function GetCurrentOutput() return outputMessages end _container.GetCurrentOutput = GetCurrentOutput local function WriteStructured(data) local _arg0 = { type = "ZirconStructuredOutput", data = data, message = "", time = 0, } local outputError = _arg0 -- ▼ Array.push ▼ outputMessages[#outputMessages + 1] = outputError -- ▲ Array.push ▲ local _logToPlayer = data.LogToPlayer local _condition = typeof(_logToPlayer) == "Instance" if _condition then _condition = data.LogToPlayer:IsA("Player") end if _condition then StandardOutput:SendToPlayer(data.LogToPlayer, outputError) else local loggablePlayers = Registry.InternalGetPlayersWithPermission("CanRecieveServerLogMessages") StandardOutput:SendToPlayers(loggablePlayers, outputError) end end _container.WriteStructured = WriteStructured --[[ * * Writes a message to either the output stream or input stream of Zircon ]] local function Write(level, tag, message, data) repeat local _fallthrough = false if level == (ZirconLogLevel.Debug) then _fallthrough = true end if _fallthrough or level == (ZirconLogLevel.Info) then _fallthrough = true end if _fallthrough or level == (ZirconLogLevel.Warning) then writeServerLogMessage(level, tag, message, data) break end if level == (ZirconLogLevel.Error) then _fallthrough = true end if _fallthrough or level == (ZirconLogLevel.Wtf) then writeServerErrorMessage(level, tag, message, data) break end until true end _container.Write = Write end return { ZirconLogService = ZirconLogService, }