Skip to content

Instantly share code, notes, and snippets.

@tblobaum
Created March 24, 2012 20:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tblobaum/40609b05878347b5da37 to your computer and use it in GitHub Desktop.
Save tblobaum/40609b05878347b5da37 to your computer and use it in GitHub Desktop.
[node@li79-228 ~]$ cat /etc/rsyslog.conf
# rsyslog v5 configuration file
# enable logger command
$ModLoad imuxsock
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
*.emerg *
local0.* /var/log/nodejs.log
[node@li79-228 ~]$ node syslog.js
Message from syslogd@li79-228 at Mar 24 16:16:24 ...
web[28634]: emerg: a message
[node@li79-228 ~]$ cat /var/log/nodejs.log
Mar 24 16:16:24 li79-228 web[28634]: alert: a message
Mar 24 16:16:24 li79-228 web[28634]: crit: a message
Mar 24 16:16:24 li79-228 web[28634]: debug: a message
Mar 24 16:16:24 li79-228 web[28634]: emerg: a message
Mar 24 16:16:24 li79-228 web[28634]: err: a message
Mar 24 16:16:24 li79-228 web[28634]: info: a message
Mar 24 16:16:24 li79-228 web[28634]: warning: a message
[node@li79-228 ~]$
//
// async logs with node.js
//
// Setup rsyslog:
//
// forward local0 facility messages to nodejs.log
// echo "local0.* /var/log/nodejs.log" >> /etc/rsyslog.conf
//
// forward local0 facility messages to 192.168.0.1 with UDP
// echo "local0.* @192.168.0.1 " > /etc/rsyslog.conf
//
// forward local0 facility messages to 192.168.0.1 with TCP
// echo "local0.* @@192.168.0.1:514 " > /etc/rsyslog.conf
//
// forward all messaged to 192.168.0.1
// echo "*.* @192.168.0.1 " > /etc/rsyslog.conf
//
// service rsyslog restart
//
;(function (exports) {
var spawn = require('child_process').spawn
;['alert'
, 'crit'
, 'debug'
, 'emerg'
, 'err'
, 'info'
, 'notice'
, 'warning'
].forEach(function (level) {
console[level] = function (str, next) {
var log = spawn('logger', [
'-t'
, process.title +'[' + process.pid +']'
, '-p'
, process.facility +'.' + level
, level + ': ' + str
])
if (next) log.on('exit', next)
}
})
})(this)
// example
;(function () {
'use strict'
process.title = 'web'
process.facility = 'local0'
for (var i=0; i<1000; i++) {
console.info('a message')
console.alert('a message', function (code, sig) { })
console.crit('a message', function (code, sig) { })
console.debug('a message', function (code, sig) { })
console.emerg('a message', function (code, sig) { })
console.err('a message', function (code, sig) { })
console.info('a message', function (code, sig) { })
console.warning('a message', function (code, sig) { })
}
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment