Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
// vim: set ft=javascript tabstop=4 softtabstop=4 shiftwidth=4 autoindent:
var dgram = require('dgram')
var debug = require('debug')('syslogd')

module.exports = exports = Syslogd
Expand All @@ -13,18 +12,23 @@ function Syslogd(fn, opt) {
this.opt = opt || {}
this.handler = fn

this.server = dgram.createSocket('udp4')
this.server = this.opt.server || require('dgram').createSocket('udp4')
}

var proto = Syslogd.prototype

proto.listen = function(port, cb) {
var server = this.server
if (this.port) {
debug('server has binded to %s', port)
debug('server has already bound to %s', port)
return
}
debug('try bind to %s', port)

if(this.opt.unlinkSocket) {
try { require('fs').unlinkSync(port); } catch(ex) {}
}

var server = this.server
debug('try binding to %s', port)
cb = cb || noop
this.port = port || 514 // default is 514
var me = this
Expand Down
12 changes: 12 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,18 @@ Syslogd(function(info) {
})
```

Or using unix domain sockets:

```js
const unix = require("unix-dgram");
var Syslogd = require('syslogd')
Syslogd(function(info) {
console.log("line received", info);
}, {server: unix.createSocket('unix_dgram'), unlinkSocket: true}).listen("/var/log/nginx.sock", function(err) {
console.log('start', err)
})
```

Check parser performance by `npm run performance`, which will run 500000 times

[npm-image]: https://img.shields.io/npm/v/syslogd.svg?style=flat-square
Expand Down