var FileReactor = function FileReactor(filename, rotateOptions) { ReadWriteStream.call(this); var dir = path.dirname(filename); if(!fs.existsSync(dir)) { fs.mkdirSync(dir); } this.file = filename; rotateOptions = rotateOptions || { logFile:filename, count:2, size:"500m", buffer:"25k" } this.logger = new RotateLogger(rotateOptions); } util.inherits(FileReactor, ReadWriteStream); FileReactor.prototype.write = function(data) { // console.log(typeof data); if(this.logger) { this.logger.log(JSON.stringify(data)+"\n"); } else { fs.appendFileSync(this.file, JSON.stringify(data)+"\n"); } } godot.reactor.register("file", FileReactor); module.exports = FileReactor;
var godot = require( "godot" ), mailer = require( "./lib/mail" ), winston = require( "winston" ), wait = require( "./lib/wait" ), nma = require( "./lib/nma" ); require( "winston-syslog" ); godot.reactor.register( "sendmail", mailer ); godot.reactor.register( "nma", nma ); godot.reactor.register( "wait", wait ); var logger = new ( winston.Logger )({ exitOnError: false, transports: [ new ( winston.transports.Console )(), new ( winston.transports.Syslog )() ] }); function onError( err ){ logger.error( "Error occured %s - %s", err.message, err.stack ); } var server = godot.createServer({ type: "udp", reactors: [ godot.reactor() .where( "service", "elviraapi/*/check" ) .wait( 1000 * 60 * 3 ) .change( "state" ) .console()