mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 13:01:31 +08:00 
			
		
		
		
	logging stuff to rotated files through simple-node-logger
This commit is contained in:
		
							parent
							
								
									11bfae4007
								
							
						
					
					
						commit
						b4bb1b539e
					
				
							
								
								
									
										21
									
								
								app.js
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								app.js
									
									
									
									
									
								
							| @ -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'); | ||||
|  | ||||
| @ -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", | ||||
|  | ||||
| @ -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
									
								
							
							
						
						
									
										41
									
								
								services/log.js
									
									
									
									
									
										Normal 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 | ||||
| }; | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 azivner
						azivner