Class Logger
Source: logger.ts
A simple wrapper for console that logs formatted text and supports log levels.
Constructors
Constructor
new Logger(
options?: {level?:LogLevel|LogLevel[];prefix?:string| {global?:string;0?:string;1?:string;2?:string;3?:string;4?:string; }; }):Logger
Parameters
options?
level?
The minimum log level or an array of log levels to enable.
undefined enables all log levels. An array enables all log levels in that array. A single level enables that log level and the ones above.
prefix?
string | { global?: string; 0?: string; 1?: string; 2?: string; 3?: string; 4?: string; }
The prefix(es) to prepend to logs.
Does not override default prefixes unless specified.
Returns
Logger
Constructor
new Logger(
level:LogLevel):Logger
Parameters
level
The minimum log level.
Returns
Logger
Constructor
new Logger(
levels:LogLevel[]):Logger
Parameters
levels
LogLevel[]
The log levels to enable.
Returns
Logger
Properties
level?
The minimum log level or an array of log levels to enable.
undefined enables all log levels. An array enables all log levels in that array. A single level enables that log level and the ones above.
Default
LogLevel.Debugindent
indent:
number=0
The current level of indentation.
Default
0indentString?
optionalindentString:string
The string to use for indentation.
Default
"\t"highlight
highlight:
Formatter=Ansi.cyan
The function to use when highlighting text.
Default
Ansi.cyanSee
emphasize
emphasize:
Formatter=Ansi.bold
The function to use when emphasizing text.
Default
Ansi.boldSee
prefix
prefix: {
global?:string;0?:string;1?:string;2?:string;3?:string;4?:string; } ={}
The prefixes to prepend to logs.
global?
optionalglobal:string
0?
optional0:string
1?
optional1:string
2?
optional2:string
3?
optional3:string
4?
optional4:string
Default
{
[LogLevel.Info]: Ansi.cyan("[info]"),
[LogLevel.Success]: Ansi.green("[success]"),
[LogLevel.Warning]: Ansi.yellow("[warning]"),
[LogLevel.Error]: Ansi.red("[error]"),
}Methods
reset()
reset():
this
Resets all properties to their default values.
Returns
this
indented()
Call Signature
indented(
callback: (this:undefined) =>void,indentation?:number):this
Calls a function while the level of indentation is increased.
Increases the level of indentation, then calls the function and finally restores the indentation.
Parameters
callback
(this: undefined) => void
The function to call.
indentation?
number
The amount of indentation to use.
Returns
this
Call Signature
indented(
lines:unknown[],indentation?:number,level?:LogLevel):this
Logs every line while the level of indentation is increased.
Increases the level of indentation, then logs every line and finally restores the indentation.
Parameters
lines
unknown[]
The lines to log.
indentation?
number
The amount of indentation to use.
level?
The log level.
Returns
this
Call Signature
indented(
message:unknown,indentation?:number,level?:LogLevel):this
Logs a message while the level of indentation is increased.
Increases the level of indentation, then logs the message and finally restores the indentation.
Parameters
message
unknown
The message to log.
indentation?
number
The amount of indentation to use.
level?
The log level.
Returns
this
tab()
tab(
amount:number):this
Increases the level of indentation.
Parameters
amount
number = 1
The amount to increase the level of indentation with.
Returns
this
shiftTab()
shiftTab(
amount:number):this
Decreases the level of indentation.
Parameters
amount
number = 1
The amount to decrease the level of indentation with.
Returns
this
setPrefix()
Call Signature
setPrefix(
prefix:string):this
Sets the prefix to prepend to all logs.
Parameters
prefix
string
The prefix to use.
Returns
this
Call Signature
setPrefix(
prefixes: {global?:string;0?:string;1?:string;2?:string;3?:string;4?:string; }):this
Sets the prefixes to prepend to logs.
Will override any existing prefixes.
Parameters
prefixes
The prefixes to use.
global?
string
0?
string
1?
string
2?
string
3?
string
4?
string
Returns
this
Call Signature
setPrefix(
level:LogLevel,prefix:string):this
Sets the prefix to prepend to logs at a given log level.
Parameters
level
The log level.
prefix
string
The prefix to use.
Returns
this
fetching()
fetching(
url:string):this
Logs an info message about a URL being fetched.
Parameters
url
string
The URL being fetched.
Returns
this
pending()
pending(
message:string):this
Logs an info message that implies a pending state.
Parameters
message
string
The status message.
Returns
this
error()
error(
message:unknown, ...details:unknown[]):this
Logs an error message.
Parameters
message
unknown
The error message or reason.
details
...unknown[]
The details of the error message.
Returns
this
warn()
warn(
message:string, ...details:unknown[]):this
Logs a warning message.
Parameters
message
string
The warning message.
details
...unknown[]
The details of the warning message.
Returns
this
success()
success(
message:string, ...details:unknown[]):this
Logs a success message.
Parameters
message
string
The success message.
details
...unknown[]
The details of the success message.
Returns
this
info()
info(
message:string, ...details:unknown[]):this
Logs an info message.
Parameters
message
string
The info message.
details
...unknown[]
The details of the info message.
Returns
this
statusMessage()
statusMessage(
message:string,details:unknown[],level?:LogLevel):this
Logs a status message.
Parameters
message
string
The status message.
details
unknown[]
The details of the status message.
level?
The log level.
Returns
this
summary()
summary():
this
Logs the amount of errors and warnings that have been logged since the previous call to this function or the creation of this logger.
Returns
this
parameter()
parameter(
label:string,value:unknown,level?:LogLevel):this
Logs a labeled parameter.
The value is emphasized using emphasize.
Parameters
label
string
The label of the parameter.
value
unknown
The value of the parameter.
level?
The log level.
Returns
this
properties()
properties(
properties:Record<string,unknown>,level?:LogLevel):this
Logs properties as a list of key-value pairs.
Parameters
properties
Record<string, unknown>
The properties to log.
level?
The log level.
Returns
this
See
value()
value(
label:string,value:unknown,level?:LogLevel):this
Logs a labeled value.
The value is highlighted using highlight.
Parameters
label
string
The label of the value.
value
unknown
The value.
level?
The log level.
Returns
this
emphasized()
emphasized(
text:string,level?:LogLevel):this
Logs emphasized text.
Parameters
text
string
The text to log.
level?
The log level.
Returns
this
highlighted()
highlighted(
text:string,level?:LogLevel):this
Logs highlighted text.
Parameters
text
string
The text to log.
level?
The log level.
Returns
this
lines()
lines(
lines:unknown[],level?:LogLevel):this
Logs each item on a new line.
Parameters
lines
unknown[]
The items to log.
level?
The log level.
Returns
this
log()
log(
message:unknown,level?:LogLevel):this
Logs a message.
Parameters
message
unknown
The message to log.
level?
The log level.
Returns
this
text()
text(
text:string,level:LogLevel):this
Logs text using this logger's format.
Parameters
text
string
The text to log.
level
LogLevel = LogLevel.Debug
The log level.
Returns
this
newLine()
newLine():
this
Logs an newline character.
Returns
this
isLevelEnabled()
isLevelEnabled(
level:LogLevel):boolean
Checks if the given log level is enabled.
Parameters
level
The log level to check.
Returns
boolean
format()
format(
text:string):string
Formats text using this logger's formatting properties.
Parameters
text
string
The text to format.
Returns
string
applyPrefix()
applyPrefix(
text:string,level?:LogLevel):string
Prepends a prefix to text.
Parameters
text
string
The text to apply the prefix to.
level?
The log level.
Returns
string