yalo.js
v0.1.1
Published
Minimal Node.js logging library
Maintainers
Readme
yalo.js
Minimal Node.js logging library
const yalo = require("yalo.js")
const logger = yalo.createLogger("output.log")
logger.info("Hello, World!")
logger.error("Error occurred")Installation
npm install yalo.jsNo dependencies required
Usage
// configuration
const options = {
depth: 2,
errors: {
title: "Error",
format: ["=", "-"],
width: 32,
errorMode: true
}
}
const logger = yalo.createLogger("output.log", options)
// log a data structure
const data = { user: { profile: { settings: { notifications: true } } } }
logger.info(data, "\n")
// show full structure
logger.depth = null
logger.info(data)
// error formatting examples
logger.error("Failed to load user data")
logger.error("Invalid configuration value", "Warning")
logger.error("Connection timeout", () => new Date().toLocaleTimeString())
logger.info("\nDone!")
logger.end()Output:
{ user: { profile: { settings: [Object] } } }
{
user: { profile: { settings: { notifications: true } } }
}
============ Error ============
Failed to load user data
-------------------------------
=========== Warning ===========
Invalid configuration value
-------------------------------
========== 10:08:36 AM ==========
Connection timeout
--------------------------------
Done!Reference
createLogger(dest, options?)
createLogger(
dest: string,
options?: Partial<{
depth: number | null
errors: Partial<{
title: string | (() => any)
format: [string, string]
width: number
errorMode: boolean
}>
}>
)dest- Output file pathoptions- Logger configurationoptions.depth-Objectdepth limit (default:2)options.errors- Error decoration optionsoptions.errors.title- Error title (default:"Error")options.errors.format- Error decoration format (default:["=", "-"])options.errors.width- Error decoration width (default:80)options.errors.errorMode- Error-only streams optimization (default:false)
@returns
{
fileStream: fs.WriteStream
depth: number | null
errors: {
title: string | (() => any)
format: [string, string]
width: number
errorMode: boolean
}
info(...data: any[]): void
error(data: any, title?: string | (() => any)): void
end(): void
}fileStream: Output streamdepth:Objectdepth limit (options.depth)errors: Error decoration options (options.errors)info(): Logs info messageserror(): Logs an error messageend(): Ends output stream
info(data)
info(...data: any[]): voiddata- Any data
error(data, title?)
error(data: any, title?: string | (() => any)): voiddata- Any datatitle- Error title (errors.title)
end()
end(): void- Ends output stream
- Used in loops
options.errors.errorMode
{
errors: {
errorMode: true
}
}- Error-only streams optimization (default:
false) - Removes the last
\nfrom the output stream when callingerror()to save space. - Useful for server error-only log files
Examples
Error logger with Date()
const options = {
errors: {
title: () => new Date(),
errorMode: true
}
}
const logger = yalo.createLogger("error.log", options)
try {
// ...
} catch (error) {
logger.error(error)
}License
MIT
Made for the Transmoder project
