2.6 KiB
2.6 KiB
Undead Logging
Logging for stupid idiots like me
import Logging from "@proxnet/undead-logging"
const log = new Logging("Main");
log.i("Hello World!");
Disable a source:
// .. logging source is in the scope
log.visible = false;
log.debug("I can't be seen!");
// no output
Change a source's name:
// .. logging source "Main" is in the scope
log.n("Network is networking");
log.source = "Main2";
log.n("Something happened");
// output:
// 2024-11-14T01:21:40.350Z Main [NETWORK] Network is networking
// 2024-11-14T01:21:40.350Z Main2 [NETWORK] Something happened
Disable a type of message globally:
import Logging, { MessageTypeVisibility } from "@proxnet/undead-logging";
// .. logging source "Main" is in the scope
MessageTypeVisibility.Error = false;
// somewhere else, could be a different script
log.i("I am visible");
log.error("I am not visible");
// output:
// 2024-11-14T01:21:40.350Z Main [INFO] I am visible
Event Listeners
Event listeners are called when a message is logged on any logging source
An event callback can either receive messages as either:
- Whole lines, including formatting, colors, excluding newlines or
- Individual
msg(string),type(MessageType),source(string), andtime(Date) arguments
Callback ran when a message is logged anywhere:
LoggingListeners.onmsg('basic', msg => {
// `msg` is a string containing the entire line w/ formatting
});
Callback ran when a message is logged anywhere (this time components are split up):
LoggingListeners.onmsg('type', (msg, type, source, time) => {
// msg: string
// type: MessageType - import { MessageType } from "@proxnet/undead-logging";)
// source: string
// time: Date
});
Remove callback:
const cb = msg => { /* do something with msg */ };
LoggingListeners.onmsg('basic', cb);
LoggingListeners.offmsg('basic', cb);
Time display modes
You can display three different formats for time:
- UTC
- Unix time (in milliseconds)
- Local [process] time (in seconds, from the
performanceAPI)
Set the time format:
import { LoggingConfiguration, TimeFormat } from "@proxnet/undead-logging";
LoggingConfiguration.timeFormat = TimeFormat.Local
// or
LoggingConfiguration.timeFormat = TimeFormat.Utc
(advanced) Logging timing
You can control when log functions are executed using LoggingConfiguration.logTiming.
Logs are sent synchronously by default. You can optionally defer logs with setImmediate using LogTiming.Deferred
LoggingConfiguration.logTiming = LogTiming.Sync
LoggingConfiguration.logTiming = LogTiming.Deferred