Merge pull request #124 from vatesfr/abhamonr-logs-avoid-sublevel
avoid sublevel for logs
This commit is contained in:
commit
2972fc5814
@ -51,6 +51,7 @@
|
||||
"got": "^5.0.0",
|
||||
"graceful-fs": "^4.1.2",
|
||||
"hashy": "~0.4.2",
|
||||
"highland": "^2.5.1",
|
||||
"http-server-plus": "^0.5.1",
|
||||
"human-format": "^0.5.0",
|
||||
"is-my-json-valid": "^2.12.2",
|
||||
|
@ -1,3 +1,5 @@
|
||||
import highland from 'highland'
|
||||
|
||||
// See: https://en.wikipedia.org/wiki/Syslog#Severity_level
|
||||
const LEVELS = [
|
||||
'emergency',
|
||||
@ -21,8 +23,9 @@ function generateUniqueKey (date) {
|
||||
}
|
||||
|
||||
export default class LevelDbLogger {
|
||||
constructor (db) {
|
||||
constructor (db, namespace) {
|
||||
this._db = db
|
||||
this._namespace = namespace
|
||||
}
|
||||
|
||||
_add (level, message, data) {
|
||||
@ -30,6 +33,7 @@ export default class LevelDbLogger {
|
||||
level,
|
||||
message,
|
||||
data,
|
||||
namespace: this._namespace,
|
||||
time: Date.now()
|
||||
}
|
||||
|
||||
@ -39,7 +43,8 @@ export default class LevelDbLogger {
|
||||
}
|
||||
|
||||
createReadStream () {
|
||||
return this._db.createReadStream()
|
||||
return highland(this._db.createReadStream())
|
||||
.filter(({value}) => value.namespace === this._namespace)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,10 @@ export default {
|
||||
type: 'string',
|
||||
description: 'human readable (short) description of this log'
|
||||
},
|
||||
namespace: {
|
||||
type: 'string',
|
||||
description: 'space to store logs'
|
||||
},
|
||||
data: {
|
||||
oneOf: [
|
||||
{ '$ref': 'log/jobStart.js' },
|
||||
@ -26,6 +30,7 @@ export default {
|
||||
required: [
|
||||
'id',
|
||||
'time',
|
||||
'message'
|
||||
'message',
|
||||
'namespace'
|
||||
]
|
||||
}
|
||||
|
@ -236,9 +236,10 @@ export default class Xo extends EventEmitter {
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
getLogger (identifier) {
|
||||
getLogger (namespace) {
|
||||
return new LevelDbLogger(
|
||||
this._leveldb.sublevel('logs').sublevel(identifier)
|
||||
this._leveldb.sublevel('logs'),
|
||||
namespace
|
||||
)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user