Skip to content

LogService

Supported Class Services NotCreatable Service

A service that allows you to read outputted text.

5 Nova members · 15 modern Roblox members not implemented yet

Description

LogService allows you to log structured log entries and read outputted text. For logging scoped to a named, hierarchical path, use LogService.GetLogger() to obtain a Logger.

Template Syntax

Methods that accept a context table support {key} template placeholders in the message string. To include a literal brace character in the output, use double braces: {{ produces a literal { and }} produces a literal }.

local LogService = game:GetService("LogService")

LogService:Info("Value = {{result}}: {val}", {val = 42})
-- Output: "Value = {result}: 42"

Context Values

The context table accepts any value type. Non-serializable values are automatically converted to strings in the stored context:

  • Instances are stored as their full path (e.g., "Workspace.MyModel.Part")
  • Functions are stored as "<function>"
  • Other non-primitive types are stored using their tostring() representation

Mixed tables (tables with both string and numeric keys) and pure arrays are accepted. Numeric keys are converted to string keys (e.g., index 1 becomes key "1"). If a numeric key collides with an existing string key, the explicit string key takes precedence.

local LogService = game:GetService("LogService")

-- Instance values are converted to their full path
LogService:Info("Touched {part}", {part = workspace.MyPart})
-- Context stores: {part = "Workspace.MyPart"}

-- Mixed tables are accepted; numeric keys become string keys
LogService:Info("Player {name}", {name = "Alice", 1, 2, 3})
-- Context stores: {name = "Alice", ["1"] = 1, ["2"] = 2, ["3"] = 3}

Warning

This service might have unexpected or unreliable behavior and content might be truncated. Don't rely on contents of events and messages emitted by this service for any important game logic.

Inheritance

Object → Instance → LogService

Nova inheritance: Instance → LogService

Methods

ExecuteScript Supported Function
LogService:ExecuteScript(string source)

No description available.

Roblox reference signature
LogService:ExecuteScript(source: string): null
Security: RobloxScriptSecurity

Roblox documentation

GetLogHistory Supported Function Returns a table of tables, each with the message string, message type, and timestamp of a message that the client displays in the Output window.
LogService:GetLogHistory(): Array

Returns a table of tables, each with the message string, message type, and timestamp of a message that the client displays in the Output window. Each inner table contains the following keys:

  • message (string) -- the rendered message text.
  • messageType (MessageType) -- the log level (MessageOutput, MessageInfo, MessageWarning, or MessageError).
  • timestamp (number) -- the time the message was emitted, in seconds.
  • context (dictionary) -- the structured key-value pairs if the message was emitted via a structured logging method; absent otherwise.

The history is capped at a maximum of 512 entries by default. Calling LogService.ClearOutput() empties the history, so subsequent calls return only entries logged after the clear.

Roblox documentation

RequestServerOutput Supported Function
LogService:RequestServerOutput()

No description available.

Roblox reference signature
LogService:RequestServerOutput(): null
Security: RobloxScriptSecurity

Roblox documentation

Events

MessageOut Supported Event Fires when the client outputs text.
MessageOut(string message, MessageType messageType)

Fires when the client outputs text.

Fires whenever a message is logged through the engine's output system, including calls to Global.LuaGlobals.print(), Global.RobloxGlobals.warn(), and the structured logging methods on LogService. The message parameter contains the fully rendered text (template placeholders already replaced). The context parameter carries the structured key-value pairs when the message was emitted via a method that accepts a context table; otherwise it is nil.

local LogService = game:GetService("LogService")

LogService.MessageOut:Connect(function(message, messageType, context)
    if messageType == Enum.MessageType.MessageError then
        print("Error:", message)
    end
    if context then
        -- Access structured data from structured logging calls
        for key, value in context do
            print(key, "=", value)
        end
    end
end)
Roblox reference signature
MessageOut(message: string, messageType: MessageType, context: Dictionary)

Roblox documentation

ServerMessageOut Supported Event
ServerMessageOut(string message, MessageType messageType, int timestamp)

No description available.

Roblox reference signature
ServerMessageOut(message: string, messageType: MessageType, timestamp: double)
Security: RobloxScriptSecurity

Roblox documentation

Inherited members

Inherited from Instance: 8 properties, 36 methods, 7 events. They are documented on the base class page.

15 modern Roblox member(s) are not implemented yet — expand to inspect

Members declared by Roblox's LogService class (or by a missing base class) that Nova does not expose. Use this list to scope a migration; the compatibility guide has the recommended workaround.

Methods

Member Signature Status Notes Flags
ClearOutput LogService:ClearOutput(): null Not yet Clears Roblox Studio's Output window. —
Error LogService:Error(message: string, context: Dictionary = nil): null Not yet Logs a message at the MessageType.MessageError level and throws a structured error with optional context. CustomLuaState
GetHttpResultHistory LogService:GetHttpResultHistory(): Array Not yet — RobloxScriptSecurity
GetLogger LogService:GetLogger(name: string): Logger Not yet Returns a top-level Logger with the given name, creating it if it does not already exist. CustomLuaState
GetLogHistoryAsync LogService:GetLogHistoryAsync(user: User): Array Not yet — Yields
Info LogService:Info(message: string, context: Dictionary = nil): null Not yet Logs a message at the MessageType.MessageInfo level with optional structured context. CustomLuaState
Log LogService:Log(messageType: MessageType, message: string, context: Dictionary = nil): null Not yet Logs a message at the specified level with optional structured context. CustomLuaState
Output LogService:Output(message: string, context: Dictionary = nil): null Not yet Logs a message at the MessageType.MessageOutput level with optional structured context. CustomLuaState
RequestHttpResultApproved LogService:RequestHttpResultApproved(): null Not yet — RobloxScriptSecurity
RequestServerHttpResult LogService:RequestServerHttpResult(): null Not yet — RobloxScriptSecurity
Warn LogService:Warn(message: string, context: Dictionary = nil): null Not yet Logs a message at the MessageType.MessageWarning level with optional structured context. CustomLuaState

Events

Member Signature Status Notes Flags
HttpResultOut HttpResultOut(httpResult: Dictionary) Not yet — RobloxScriptSecurity
OnHttpResultApproved OnHttpResultApproved(isApproved: bool) Not yet — RobloxScriptSecurity
ServerContextOut ServerContextOut(contextData: Dictionary) Not yet — RobloxScriptSecurity
ServerHttpResultOut ServerHttpResultOut(httpResult: Dictionary) Not yet — RobloxScriptSecurity

Roblox reference: LogService

Generated from Nova's API dump and Roblox creator-docs. Nova-only members come from the engine's reflection metadata.