
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
https://github.com/Mparaiso/monolog.js
###Log everything everywhere, monolog for javascript and node
author mparaiso mparaiso@online.fr
heavily inspired by monolog PHP library
###Installation
npm install -g monolog
####Handlers
####Processors
####Formatters
###Usage
####Basic usage
var monolog = require('monolog')
, Logger = monolog.Logger
, StreamHandler = monolog.handler.StreamHandler;
//create a Log channel
var log = new Logger('name')
//create a Log handler
log.pushHandler(new StreamHandler('/path/to/your.log',Logger.DEBUG))
//listen to log events
log.on("log",function(error,record,handler){console.log(arguments)});
// add records to the log
log.warn('Foo')
log.err('Bar')
log.debug('Baz')
####Server request logging
var http, logger, monolog, port, server, webProcessor;
http = require('http');
monolog = require('monolog');
port = 3000;
server = http.createServer();
logger = new monolog.Logger("server logger");
logger.pushHandler(new monolog.handler.ConsoleLogHandler);
// a WebProcessor extracts data from each request and add it to the log records
logger.pushProcessor(new monolog.processor.WebProcessor(server));
server.on('request', function(req, res) {
logger.info('logging request');
return res.end('ok!');
});
server.listen(3000);
console.log("listening on port " + port);
var monolog,logger;
monolog=require('monolog');
logger = new monolog.Logger("couchdb logger");
logger.pushHandler(new monolog.handler.CouchDBHandler({
host:"localhost",
dbname:"logger"
}));
logger.on('log',function(err,res,record,handler){
console.log(arguments);
});
logger.info('Logging to couchdb');
var monolog,logger,mongodb;
monolog=require('monolog');
mongodb = require('mongodb').MongoClient.connect("localhost",function(err,db){
logger=new monolog.Logger("channel name");
logger.pushHandler(new monolog.handler.MongoDBHandler(db,"log_collection"));
logger.info("log message");
});
in a file called logger.js
"use strict";
/**
* monolog middleware for connect and express
* USAGE
* =====
* var app=express()
* app.use(logger.middleware(app,"debugging"));
*
*/
var monolog = require('monolog');
/**
* @type {monolog.Logger}
*/
var logger = new monolog.Logger("express logger");
logger.addHandler(new monolog.handler.StreamHandler(__dirname + "/../temp/log.txt"));
/**
* [middleware description]
* @param {Express} app express app
* @param {String} message log message
* @return {Function} middleware
*/
logger.middleware = function(app, message) {
message = message || "debug";
logger.addProcessor(new monolog.processor.ExpressProcessor(app));
app.set('logger', logger);
var F = function(req, res, next) {
logger.debug(message);
next();
};
F.logger = logger;
return F;
};
module.exports = logger;
FAQs
Log with Monolog
We found that monolog demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.