Skip to content

Log

Source: shiva-core/server/sv_logger.lua

Structured logger with channel tagging and optional context tables. Uses FiveM colour codes for console output.

Server only

Log is a server-side global injected by shiva-core. It is not available on the client.

Availability

Log is a global in every shiva module running server-side. No import required.

Signature

All methods share the same signature:

lua
Log.<level>(channel, message, ctx?)
ParamTypeDescription
channelstringLog channel tag, e.g. 'economy', 'boot', 'db'
messagestringHuman-readable message
ctxtable?Optional key-value context pairs

Methods

Log.debug(channel, message, ctx?)

Debug message. Only emitted when shiva_debug is true.

lua
Log.debug('fishing', 'Cast line', { spot = spotId, player = source })

Log.info(channel, message, ctx?)

Informational message.

lua
Log.info('economy', 'Module started')

Log.warn(channel, message, ctx?)

Warning — non-fatal but worth operator attention.

lua
Log.warn('config', 'Missing key, using default', { key = 'maxItems' })

Log.error(channel, message, ctx?)

Error — something failed but the server keeps running.

lua
Log.error('db', 'Query failed', { sql = sql, err = tostring(err) })

Log.fatal(channel, message, ctx?)

Fatal — boot-stopping condition. Always printed regardless of debug mode.

lua
Log.fatal('boot', 'Could not connect to database')

Log.success(channel, message, ctx?)

Positive milestone (green console output).

lua
Log.success('modules', 'All 73 modules loaded')

Log.logError(channel, err, verbose?)

Log a structured ShivaError. Verbose mode includes the stack trace.

lua
Log.logError('economy', err)
Log.logError('economy', err, true)  -- include stack trace

Configuration

ConVarDefaultDescription
shiva_debugfalseEnable Log.debug() output
logger.channels.consoletruePrint to FiveM console
logger.channels.discordfalseRelay to Discord webhook (Phase 2)

Released under the MIT License.