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.
constlogger=newLogger("App",{level: "debug",// or LoggerMessage.level.debugtimestamp: "utc"// or LoggerMessage.timestamp.utc});// Prints to a console// [Mon, 01 Jul 2019 23:41:04 GMT] [DBG] [App] Initializinglogger.debug("Initializing");const{FileLogger}=require('@voliware/logger');constfilelogger=newFileLogger("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 inlogger.info("Logged in");const{MongoDbLogger}=require('@voliware/logger');// Setup MongoDB exampleconsturl="mongodb://localhost:27017/logger-testing?retryWrites=true&w=majority"constmongoclient=newMongoClient(url,{useNewUrlParser: true,useUnifiedTopology: true});awaitmongoclient.connect();constmongodb=mongoclient.db("logger-testing");awaitmongodb.createCollection("logs");// Create the loggerconstmongodblogger=newMongoDbLogger("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(newLoggerMessage({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 limitlogger.maxsize=1024*1024;logger.maxsize=0;// no limitlogger.console=false;// don't also print to consolelogger.filepath='path/to/file.ext';logger.maxsize=1024*1024;logger.maxsize=0;// no limit//logger.multiplefiles = true; // futurelogger.clear();logger.delete();logger.rename('new/file/name.ext');logger.console=false;// don't also print to consolelogger.collection=collection;// native MongoDB collectionlogger.clear();Install with node package manager
npminstall @voliware/loggerInclude in a file
constLogger=require('@voliware/logger');Include in a file
<scriptsrc="https://cdn.jsdelivr.net/npm/@voliware/logger/dist/logger.min.js"></script>