Lumesh Shell Log Module Documentation
Module Path
log.
Log Level Constants
Constant Path | Value | Description |
---|---|---|
log.level.none |
0 | Disable all logs |
log.level.error |
1 | Critical error (red output) |
log.level.warn |
2 | Warning (yellow output) |
log.level.info |
3 | Information (green output, default level) |
log.level.debug |
4 | Debug (blue output) |
log.level.trace |
5 | Trace (purple output) |
Log Control Functions
1. log.set_level
Set the global log level
- Parameters:
level
: integer (must be alog.level.*
constant value)
- Returns:
none
- Errors:
TypeError
: Non-integer parameterArityError
: Number of parameters ≠ 1
Example:
# Enable DEBUG and above levels |
2. log.get_level
Get the current log level
- Parameters: None
- Returns: integer (current level value)
Example:
log.get_level() ; => 4 (DEBUG) |
3. log.disable
Disable all logs (equivalent to set_level 0
)
- Parameters: None
- Returns:
none
Example:
log.disable() |
4. log.enabled?
Check if the specified level is enabled
- Parameters:
level
: integer (log level value)
- Returns: Boolean (
true
/false
)
Example:
# Check if INFO level is enabled |
Log Output Functions
All functions:
- Support any number of parameters (automatically concatenated into a string)
- Multi-line text automatically aligns prefixes
- Skips output if below the current level
1. log.error
Output error log (red)
- Parameters: Any type (automatically converted to string)
- Returns:
none
Example:
log.error "File not found:" "/data/config.yaml" |
2. log.warn
Output warning log (yellow)
- Parameters: Any type
Example:
log.warn "Deprecated API called at line" 42 |
3. log.info
Output information log (green)
- Parameters: Any type
Example:
log.info "Server started on port" 8080 |
4. log.debug
Output debug log (blue)
- Parameters: Any type
Example:
log.debug "Received JSON:" "{ id: 5, status: \"ok\" }" |
5. log.trace
Output trace log (purple)
- Parameters: Any type
Example:
log.trace "Function entry:" "calculate_score()" |
6. log.echo
Raw output (no prefix/color/level filtering)
- Parameters: Any type
- Features:
- Does not add log prefix
- Not controlled by log level
Example:
log.echo "Raw output" (math.sum 1 2) ; # => Raw output 3 |
Multi-line Output Specification
log.info "Multiline message:\nLine1\nLine2" |
Output Effect:
[INFO] Multiline message: |
Rules:
- The first line displays a colored label
- Subsequent lines are indented to align with the label length
- Automatically appends a newline character at the end
Note: Color effects should be viewed in an ANSI-supported terminal.