OnDebugMessage: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Add information about cancelling.)
(Improve example.)
Line 39: Line 39:


==Example==  
==Example==  
This example outputs all debug messages to the chat box with the same colouring.
This example outputs error debug messages to chat.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
addEventHandler("onDebugMessage", getRootElement(),
function onDebugMessage(debugMessage, debugLevel, debugFile, debugLine, debugRed, debugGreen, debugBlue)
local debugError = (debugLevel == 1)


function(message, level, file, line)
if (not debugError) then
return false
end


if level == 1 then
local debugAtFile = (debugFile and debugFile or "NO_FILE")
outputChatBox("ERROR: " .. file .. ":" .. tostring(line) .. ", " .. message, getRootElement(), 255,0,0)
local debugAtLine = (debugLine and debugLine or "NO_LINE")
elseif level == 2 then
local debugChatMessage = "ERROR: "..debugAtFile..":"..debugAtLine..": "..debugMessage
outputChatBox("WARNING: " .. file .. ":" .. tostring(line) .. ", " .. message, getRootElement(), 255,165,0)
 
else
outputChatBox(debugChatMessage, root, debugRed, debugGreen, debugBlue)
outputChatBox("INFO: " .. file .. ":" .. tostring(line) .. ", " .. message, getRootElement(), 0,0,255)
end
end
 
addEventHandler("onDebugMessage", root, onDebugMessage)
 
end)
</syntaxhighlight>
</syntaxhighlight>


{{See also/Server event|Server events}}
{{See also/Server event|Server events}}

Revision as of 07:04, 8 June 2024

This event is triggered when debug messages (for instance errors or warnings) appear in the server console.

Note: To prevent infinite loops, debug messages that occur inside the function that handles this event won't trigger this event, so you won't be able to rely on debug info to fix faulty code that is inside this function. Since build r14683 debug messages from outputDebugString and iprint will show up.

Parameters

string message, int level, string file, int line
ADDED/UPDATED IN VERSION 1.5.4-9.11412 :
string message, int level, string file, int line, int r, int g, int b
  • message: the message which was outputted in the server console, without details like file, line etc.
  • level: the type of debug message which was outputted.
    • 0: "Custom" message.
    • 1: Error message.
    • 2: Warning message.
    • 3: Information message.
  • file: the file from which the debug message was outputted.
    • Note: may return nil when the source could not be found.
  • line: the line in file file where the debug message was outputted.
    • Note: may return nil when the source could not be found.
ADDED/UPDATED IN VERSION 1.5.4-9.11412 :
  • r: an int representing the amount of red color (0-255).
  • g: an int representing the amount of green color (0-255).
  • b: an int representing the amount of blue color (0-255).

Source

The source of this event is the root element.

Canceling

If this event is canceled, the debug message won't appear.

Example

This example outputs error debug messages to chat.

function onDebugMessage(debugMessage, debugLevel, debugFile, debugLine, debugRed, debugGreen, debugBlue)
	local debugError = (debugLevel == 1)

	if (not debugError) then
		return false
	end

	local debugAtFile = (debugFile and debugFile or "NO_FILE")
	local debugAtLine = (debugLine and debugLine or "NO_LINE")
	local debugChatMessage = "ERROR: "..debugAtFile..":"..debugAtLine..": "..debugMessage

	outputChatBox(debugChatMessage, root, debugRed, debugGreen, debugBlue)
end
addEventHandler("onDebugMessage", root, onDebugMessage)

See Also

Server events


Event functions

Shared