Browse Source

fix: Fixed logger filters

pull/89/head
NGPixel 7 years ago
parent
commit
a68235190a
6 changed files with 57 additions and 54 deletions
  1. 17
      server/agent.js
  2. 15
      server/index.js
  3. 24
      server/libs/git.js
  4. 4
      server/libs/local.js
  5. 45
      server/libs/logger.js
  6. 6
      server/libs/search.js

17
server/agent.js

@ -8,10 +8,9 @@ const path = require('path')
const ROOTPATH = process.cwd()
const SERVERPATH = path.join(ROOTPATH, 'server')
global.PROCNAME = 'AGENT'
global.ROOTPATH = ROOTPATH
global.SERVERPATH = SERVERPATH
global.IS_DEBUG = process.env.NODE_ENV === 'development'
const IS_DEBUG = process.env.NODE_ENV === 'development'
let appconf = require('./libs/config')()
global.appconfig = appconf.config
@ -21,13 +20,13 @@ global.appdata = appconf.data
// Load Winston
// ----------------------------------------
global.winston = require('./libs/logger')(IS_DEBUG)
global.winston = require('./libs/logger')(IS_DEBUG, 'AGENT')
// ----------------------------------------
// Load global modules
// ----------------------------------------
winston.info('[AGENT] Background Agent is initializing...')
winston.info('Background Agent is initializing...')
global.db = require('./libs/db').init()
global.upl = require('./libs/uploads-agent').init()
@ -64,10 +63,10 @@ db.onReady.then(() => {
// Make sure we don't start two concurrent jobs
if (jobIsBusy) {
winston.warn('[AGENT] Previous job has not completed gracefully or is still running! Skipping for now. (This is not normal, you should investigate)')
winston.warn('Previous job has not completed gracefully or is still running! Skipping for now. (This is not normal, you should investigate)')
return
}
winston.info('[AGENT] Running all jobs...')
winston.info('Running all jobs...')
jobIsBusy = true
// Prepare async job collector
@ -165,7 +164,7 @@ db.onReady.then(() => {
// ----------------------------------------
Promise.all(jobs).then(() => {
winston.info('[AGENT] All jobs completed successfully! Going to sleep for now.')
winston.info('All jobs completed successfully! Going to sleep for now.')
if (!jobUplWatchStarted) {
jobUplWatchStarted = true
@ -176,7 +175,7 @@ db.onReady.then(() => {
return true
}).catch((err) => {
winston.error('[AGENT] One or more jobs have failed: ', err)
winston.error('One or more jobs have failed: ', err)
}).finally(() => {
jobIsBusy = false
})
@ -192,7 +191,7 @@ db.onReady.then(() => {
// ----------------------------------------
process.on('disconnect', () => {
winston.warn('[AGENT] Lost connection to main server. Exiting...')
winston.warn('Lost connection to main server. Exiting...')
job.stop()
process.exit()
})

15
server/index.js

@ -10,10 +10,9 @@ const path = require('path')
const ROOTPATH = process.cwd()
const SERVERPATH = path.join(ROOTPATH, 'server')
global.PROCNAME = 'SERVER'
global.ROOTPATH = ROOTPATH
global.SERVERPATH = SERVERPATH
global.IS_DEBUG = process.env.NODE_ENV === 'development'
const IS_DEBUG = process.env.NODE_ENV === 'development'
process.env.VIPS_WARNING = false
@ -25,8 +24,8 @@ global.appdata = appconf.data
// Load Winston
// ----------------------------------------
global.winston = require('./libs/logger')(IS_DEBUG)
winston.info('[SERVER] Wiki.js is initializing...')
global.winston = require('./libs/logger')(IS_DEBUG, 'SERVER')
winston.info('Wiki.js is initializing...')
// ----------------------------------------
// Load global modules
@ -188,7 +187,7 @@ app.use(function (err, req, res, next) {
// Start HTTP server
// ----------------------------------------
winston.info('[SERVER] Starting HTTP/WS server on port ' + appconfig.port + '...')
winston.info('Starting HTTP/WS server on port ' + appconfig.port + '...')
app.set('port', appconfig.port)
var server = http.createServer(app)
@ -203,10 +202,10 @@ server.on('error', (error) => {
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error('Listening on port ' + appconfig.port + ' requires elevated privileges!')
winston.error('Listening on port ' + appconfig.port + ' requires elevated privileges!')
return process.exit(1)
case 'EADDRINUSE':
console.error('Port ' + appconfig.port + ' is already in use!')
winston.error('Port ' + appconfig.port + ' is already in use!')
return process.exit(1)
default:
throw error
@ -214,7 +213,7 @@ server.on('error', (error) => {
})
server.on('listening', () => {
winston.info('[SERVER] HTTP/WS server started successfully! [RUNNING]')
winston.info('HTTP/WS server started successfully! [RUNNING]')
})
// ----------------------------------------

24
server/libs/git.js

@ -66,13 +66,13 @@ module.exports = {
_initRepo (appconfig) {
let self = this
winston.info('[' + PROCNAME + '.Git] Checking Git repository...')
winston.info('Checking Git repository...')
// -> Check if path is accessible
return fs.mkdirAsync(self._repo.path).catch((err) => {
if (err.code !== 'EEXIST') {
winston.error('[' + PROCNAME + '.Git] Invalid Git repository path or missing permissions.')
winston.error('Invalid Git repository path or missing permissions.')
}
}).then(() => {
self._git = new Git({ 'git-dir': self._repo.path })
@ -87,7 +87,7 @@ module.exports = {
})
}).then(() => {
if (appconfig.git === false) {
winston.info('[' + PROCNAME + '.Git] Remote syncing is disabled. Not recommended!')
winston.info('Remote Git syncing is disabled. Not recommended!')
return Promise.resolve(true)
}
@ -124,10 +124,10 @@ module.exports = {
})
})
}).catch((err) => {
winston.error('[' + PROCNAME + '.Git] Git remote error!')
winston.error('Git remote error!')
throw err
}).then(() => {
winston.info('[' + PROCNAME + '.Git] Git repository is OK.')
winston.info('Git repository is OK.')
return true
})
},
@ -157,12 +157,12 @@ module.exports = {
// Fetch
winston.info('[' + PROCNAME + '.Git] Performing pull from remote repository...')
winston.info('Performing pull from remote Git repository...')
return self._git.pull('origin', self._repo.branch).then((cProc) => {
winston.info('[' + PROCNAME + '.Git] Pull completed.')
winston.info('Git Pull completed.')
})
.catch((err) => {
winston.error('[' + PROCNAME + '.Git] Unable to fetch from git origin!')
winston.error('Unable to fetch from git origin!')
throw err
})
.then(() => {
@ -172,19 +172,19 @@ module.exports = {
let out = cProc.stdout.toString()
if (_.includes(out, 'commit')) {
winston.info('[' + PROCNAME + '.Git] Performing push to remote repository...')
winston.info('Performing push to remote Git repository...')
return self._git.push('origin', self._repo.branch).then(() => {
return winston.info('[' + PROCNAME + '.Git] Push completed.')
return winston.info('Git Push completed.')
})
} else {
winston.info('[' + PROCNAME + '.Git] Push skipped. Repository is already in sync.')
winston.info('Git Push skipped. Repository is already in sync.')
}
return true
})
})
.catch((err) => {
winston.error('[' + PROCNAME + '.Git] Unable to push changes to remote!')
winston.error('Unable to push changes to remote Git repository!')
throw err
})
},

4
server/libs/local.js

@ -98,7 +98,7 @@ module.exports = {
* @return {Void} Void
*/
createBaseDirectories (appconfig) {
winston.info('[SERVER.Local] Checking data directories...')
winston.info('Checking data directories...')
try {
fs.ensureDirSync(path.resolve(ROOTPATH, appconfig.paths.data))
@ -121,7 +121,7 @@ module.exports = {
winston.error(err)
}
winston.info('[SERVER.Local] Data and Repository directories are OK.')
winston.info('Data and Repository directories are OK.')
},
/**

45
server/libs/logger.js

@ -1,31 +1,36 @@
'use strict'
const winston = require('winston')
module.exports = (isDebug, processName) => {
let winston = require('winston')
module.exports = (isDebug) => {
if (typeof PROCNAME === 'undefined') {
const PROCNAME = 'SERVER' // eslint-disable-line no-unused-vars
if (typeof processName === 'undefined') {
processName = 'SERVER'
}
// Console + File Logs
// Console
winston.remove(winston.transports.Console)
winston.add(winston.transports.Console, {
let logger = new (winston.Logger)({
level: (isDebug) ? 'debug' : 'info',
prettyPrint: true,
colorize: true,
silent: false,
timestamp: true,
filters: [(level, msg, meta) => {
return '[' + PROCNAME + '] ' + msg // eslint-disable-line no-undef
}]
transports: [
new (winston.transports.Console)({
level: (isDebug) ? 'debug' : 'info',
prettyPrint: true,
colorize: true,
silent: false,
timestamp: true
})
]
})
logger.filters.push((level, msg) => {
return '[' + processName + '] ' + msg
})
// External services
if (appconfig.externalLogging.bugsnag) {
const bugsnagTransport = require('./winston-transports/bugsnag')
winston.add(bugsnagTransport, {
logger.add(bugsnagTransport, {
level: 'warn',
key: appconfig.externalLogging.bugsnag
})
@ -33,7 +38,7 @@ module.exports = (isDebug) => {
if (appconfig.externalLogging.loggly) {
require('winston-loggly-bulk')
winston.add(winston.transports.Loggly, {
logger.add(winston.transports.Loggly, {
token: appconfig.externalLogging.loggly.token,
subdomain: appconfig.externalLogging.loggly.subdomain,
tags: ['wiki-js'],
@ -44,7 +49,7 @@ module.exports = (isDebug) => {
if (appconfig.externalLogging.papertrail) {
require('winston-papertrail').Papertrail // eslint-disable-line no-unused-expressions
winston.add(winston.transports.Papertrail, {
logger.add(winston.transports.Papertrail, {
host: appconfig.externalLogging.papertrail.host,
port: appconfig.externalLogging.papertrail.port,
level: 'warn',
@ -54,7 +59,7 @@ module.exports = (isDebug) => {
if (appconfig.externalLogging.rollbar) {
const rollbarTransport = require('./winston-transports/rollbar')
winston.add(rollbarTransport, {
logger.add(rollbarTransport, {
level: 'warn',
key: appconfig.externalLogging.rollbar
})
@ -62,11 +67,11 @@ module.exports = (isDebug) => {
if (appconfig.externalLogging.sentry) {
const sentryTransport = require('./winston-transports/sentry')
winston.add(sentryTransport, {
logger.add(sentryTransport, {
level: 'warn',
key: appconfig.externalLogging.sentry
})
}
return winston
return logger
}

6
server/libs/search.js

@ -27,12 +27,12 @@ module.exports = {
stopwords: _.get(stopWord, appconfig.lang, [])
}, (err, si) => {
if (err) {
winston.error('[SERVER.Search] Failed to initialize search index.', err)
winston.error('Failed to initialize search index.', err)
reject(err)
} else {
self._si = Promise.promisifyAll(si)
self._si.flushAsync().then(() => {
winston.info('[SERVER.Search] Search index flushed and ready.')
winston.info('Search index flushed and ready.')
resolve(true)
})
}
@ -92,7 +92,7 @@ module.exports = {
parent: content.parent || '',
content: content.content || ''
}]).then(() => {
winston.log('verbose', '[SERVER.Search] Entry ' + content._id + ' added/updated to index.')
winston.log('verbose', 'Entry ' + content._id + ' added/updated to search index.')
return true
}).catch((err) => {
winston.error(err)

Loading…
Cancel
Save