Notes/src/services/log.js

56 lines
1.2 KiB
JavaScript
Raw Normal View History

"use strict";
const fs = require('fs');
const dataDir = require('./data_dir');
if (!fs.existsSync(dataDir.LOG_DIR)) {
fs.mkdirSync(dataDir.LOG_DIR, 0o700);
}
const logger = require('simple-node-logger').createRollingFileLogger({
errorEventName: 'error',
logDirectory: dataDir.LOG_DIR,
fileNamePattern: 'trilium-<DATE>.log',
dateFormat:'YYYY-MM-DD'
});
function info(message) {
2018-04-07 21:30:01 -04:00
// info messages are logged asynchronously
setTimeout(() => {
console.log(message);
2017-10-29 14:55:48 -04:00
2018-04-07 21:30:01 -04:00
logger.info(message);
}, 0);
}
function error(message) {
2018-04-07 21:30:01 -04:00
message = "ERROR: " + message;
2017-11-08 22:33:08 -05:00
// we're using .info() instead of .error() because simple-node-logger emits weird error for showError()
2018-04-07 21:30:01 -04:00
// errors are logged synchronously to make sure it doesn't get lost in case of crash
logger.info(message);
console.trace(message);
}
2020-04-14 21:57:42 +02:00
const requestBlacklist = [ "/libraries", "/app", "/images", "/stylesheets" ];
function request(req) {
for (const bl of requestBlacklist) {
if (req.url.startsWith(bl)) {
return;
}
}
2019-10-28 20:26:40 +01:00
if (req.url.includes(".js.map") || req.url.includes(".css.map")) {
return;
}
logger.info(req.method + " " + req.url);
}
module.exports = {
info,
error,
request
};