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