コード例 #1
0
ファイル: fileReactor.js プロジェクト: shineforever/ops
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;
コード例 #2
0
ファイル: server.js プロジェクト: oroce/godot-monitor
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()