A flexible logging utility for Bun applications with multiple output formats and real-time web interface.
- Multiple logging formats (TEXT, JSON, CSV)
- Console and file logging
- SQLite database storage
- Real-time web interface
- RESTful API for log querying
- Configurable output paths
- TypeScript support
bun add wlogimport Wlog, { LogFormat } from "wlog";
// Create a logger instance
const logger = new Wlog({
logToConsole: true,
logToFile: true,
filePath: "logs/app-logs",
fileFormat: LogFormat.TEXT
});
// Log messages
logger.log("Regular log message");
logger.info("Information message");
logger.error("Error message");interface WlogConfig {
logToConsole?: boolean; // Default: false
logToFile?: boolean; // Default: false
filePath?: string; // Default: 'logs'
fileFormat?: LogFormat; // Default: LogFormat.TEXT
serverOptions?: {
enable?: boolean; // Default: false
port?: number; // Default: 3000
path?: string; // Default: '/logs'
livePath?: string; // Default: '/live'
};
}[2024-01-01 12:00:00] [INFO] This is a text log
[
{
"timestamp": "2024-01-01 12:00:00",
"level": "INFO",
"message": "This is a JSON log"
}
]timestamp,level,message
2024-01-01 12:00:00,INFO,This is a CSV logEnable the web interface by setting serverOptions.enable to true:
const logger = new Wlog({
serverOptions: {
enable: true,
port: 3000
}
});- Access logs API:
http://localhost:3000/logs - Live web interface:
http://localhost:3000/live
startDate: Filter logs from this dateendDate: Filter logs until this datelevel: Filter by log levellimit: Maximum number of logsoffset: Number of logs to skiporder: Sort order ('ASC' or 'DESC')
Example: http://localhost:3000/logs?level=error&limit=10&order=DESC
MIT