Skip to content

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?

LogLevel | LogLevel[]

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

LogLevel

The minimum log level.

Returns

Logger

Constructor

new Logger(levels: LogLevel[]): Logger

Parameters

levels

LogLevel[]

The log levels to enable.

Returns

Logger

Properties

level?

optional level: LogLevel | LogLevel[]

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

ts
LogLevel.Debug

indent

indent: number = 0

The current level of indentation.

Default

ts
0

indentString?

optional indentString: string

The string to use for indentation.

Default

ts
"\t"

highlight

highlight: Formatter = Ansi.cyan

The function to use when highlighting text.

Default

ts
Ansi.cyan

See

Ansi.cyan


emphasize

emphasize: Formatter = Ansi.bold

The function to use when emphasizing text.

Default

ts
Ansi.bold

See

Ansi.bold


prefix

prefix: { global?: string; 0?: string; 1?: string; 2?: string; 3?: string; 4?: string; } = {}

The prefixes to prepend to logs.

global?

optional global: string

0?

optional 0: string

1?

optional 1: string

2?

optional 2: string

3?

optional 3: string

4?

optional 4: string

Default

ts
{
	[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?

LogLevel

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?

LogLevel

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

LogLevel

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?

LogLevel

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?

LogLevel

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?

LogLevel

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?

LogLevel

The log level.

Returns

this


emphasized()

emphasized(text: string, level?: LogLevel): this

Logs emphasized text.

Parameters

text

string

The text to log.

level?

LogLevel

The log level.

Returns

this


highlighted()

highlighted(text: string, level?: LogLevel): this

Logs highlighted text.

Parameters

text

string

The text to log.

level?

LogLevel

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?

LogLevel

The log level.

Returns

this


log()

log(message: unknown, level?: LogLevel): this

Logs a message.

Parameters

message

unknown

The message to log.

level?

LogLevel

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

LogLevel

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?

LogLevel

The log level.

Returns

string

Built by Prozilla