logging stuff to rotated files through simple-node-logger

This commit is contained in:
azivner 2017-10-24 22:04:52 -04:00
parent 11bfae4007
commit b4bb1b539e
4 changed files with 58 additions and 16 deletions

21
app.js
View File

@ -1,13 +1,13 @@
const express = require('express');
const path = require('path');
const favicon = require('serve-favicon');
const logger = require('morgan');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const helmet = require('helmet');
const session = require('express-session');
const FileStore = require('session-file-store')(session);
const os = require('os');
const log = require('./services/log');
const indexRoute = require('./routes/index');
const loginRoute = require('./routes/login');
@ -40,7 +40,12 @@ app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(helmet());
app.use(logger('dev'));
app.use((req, res, next) => {
log.request(req);
next();
});
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(cookieParser());
@ -78,21 +83,15 @@ app.use('/api/password', passwordApiRoute);
app.use('/api/migration', migrationApiRoute);
// catch 404 and forward to error handler
app.use(function (req, res, next) {
app.use((req, res, next) => {
const err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function (err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
app.use((err, req, res, next) => {
log.error(err.message);
});
require('./services/sync');

View File

@ -14,19 +14,19 @@
"debug": "~3.1.0",
"ejs": "~2.5.7",
"electron": "^1.7.9",
"electron-debug": "^1.0.0",
"electron-rebuild": "^1.6.0",
"express": "~4.16.2",
"express-session": "^1.15.6",
"express-sessions": "^1.0.6",
"fs-extra": "^4.0.2",
"helmet": "^3.9.0",
"ini": "^1.3.4",
"morgan": "~1.9.0",
"scrypt": "^6.0.3",
"serve-favicon": "~2.4.5",
"session-file-store": "^1.1.2",
"sqlite": "^2.8.0",
"electron-debug": "^1.0.0",
"electron-rebuild": "^1.6.0"
"simple-node-logger": "^0.93.30",
"sqlite": "^2.8.0"
},
"devDependencies": {
"devtron": "^1.1.0",

View File

@ -11,9 +11,11 @@ if (!fs.existsSync(TRILIUM_DATA_DIR)) {
const DOCUMENT_PATH = TRILIUM_DATA_DIR + "/document.db";
const BACKUP_DIR = TRILIUM_DATA_DIR + "/backup";
const LOG_DIR = TRILIUM_DATA_DIR + "/log";
module.exports = {
TRILIUM_DATA_DIR,
DOCUMENT_PATH,
BACKUP_DIR
BACKUP_DIR,
LOG_DIR
};

41
services/log.js Normal file
View File

@ -0,0 +1,41 @@
"use strict";
const fs = require('fs');
const LOG_DIR = require('./data_dir').LOG_DIR;
if (!fs.existsSync(LOG_DIR)) {
fs.mkdirSync(LOG_DIR, 0o700);
}
const logger = require('simple-node-logger').createRollingFileLogger({
errorEventName: 'error',
logDirectory: LOG_DIR,
fileNamePattern: 'trilium-<DATE>.log',
dateFormat:'YYYY-MM-DD'
});
function info(message) {
logger.info(message);
}
function error(message) {
logger.error(message);
}
const requestBlacklist = [ "/api/audit", "/libraries", "/javascripts", "/images", "/stylesheets" ];
function request(req) {
for (const bl of requestBlacklist) {
if (req.url.startsWith(bl)) {
return;
}
}
logger.info(req.method + " " + req.url);
}
module.exports = {
info,
error,
request
};