Probably the simplest logger out there. Now with a little more kick.
Version 2 introduces breaking changes, as well as new FileLogger
and MongoDbLogger
classes.
const logger = new Logger("App", {
level: "debug", // or LoggerMessage.level.debug
timestamp: "utc" // or LoggerMessage.timestamp.utc
});
// Prints to a console
// [Mon, 01 Jul 2019 23:41:04 GMT] [DBG] [App] Initializing
logger.debug("Initializing");
const {FileLogger} = require('@voliware/logger');
const filelogger = new FileLogger("App", {
context: "User",
filepath: "/path/to/file.log",
timestamp: false,
maxlogs: 10000,
maxsize: 1024 * 1000,
//multiplefiles: true // Not yet supported
});
// Logs to a file
// [INF] [App] [User] Logged in
logger.info("Logged in");
const {MongoDbLogger} = require('@voliware/logger');
// Setup MongoDB example
const url = "mongodb://localhost:27017/logger-testing?retryWrites=true&w=majority"
const mongoclient = new MongoClient(url, {
useNewUrlParser: true,
useUnifiedTopology: true
});
await mongoclient.connect();
const mongodb = mongoclient.db("logger-testing");
await mongodb.createCollection("logs");
// Create the logger
const mongodblogger = new MongoDbLogger("App", {
collection: mongodb.collection('logs')
});
If you want to use a single logger throughout, but want to change the [Name] or [Context] per message, you can pass a LoggerMessage
object to the associated log function.
logger.debug(new LoggerMessage({
name: "[Social]",
context: "[Posts]",
text: "Bob posted something"
}))
logger.verbose("verbose log");
logger.debug("debug log");
logger.info("info log");
logger.warning("warning log");
logger.error("error log");
logger.log("hello", "debug");
logger.log("hello again", Logger.level.debug);
logger.name = "App";
logger.context = "Users";
logger.timestamp = "numeric";
logger.level = "info";
logger.enabled = false;
logger.maxlogs = 1000;
logger.maxlogs = 0; // no limit
logger.maxsize = 1024 * 1024;
logger.maxsize = 0; // no limit
logger.console = false; // don't also print to console
logger.filepath = 'path/to/file.ext';
logger.maxsize = 1024 * 1024;
logger.maxsize = 0; // no limit
//logger.multiplefiles = true; // future
logger.clear();
logger.delete();
logger.rename('new/file/name.ext');
logger.console = false; // don't also print to console
logger.collection = collection; // native MongoDB collection
logger.clear();
Install with node package manager
npm install @voliware/logger
Include in a file
const Logger = require('@voliware/logger');
Include in a file
<script src="https://cdn.jsdelivr.net/npm/@voliware/logger/dist/logger.min.js"></script>