浏览代码

feature/23 (#44)

pull/45/head
父节点
当前提交
ebe1877293

+ 11
- 0
package-lock.json 查看文件

@@ -12,6 +12,7 @@
"bcryptjs": "^2.4.3",
"config": "^3.3.7",
"cors": "^2.8.5",
"elmah.io.javascript": "^3.7.0",
"express": "^4.18.1",
"express-jwt": "^7.7.2",
"helmet": "^5.1.0",
@@ -966,6 +967,11 @@
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"node_modules/elmah.io.javascript": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/elmah.io.javascript/-/elmah.io.javascript-3.7.0.tgz",
"integrity": "sha512-s7yyLo8tlZPURYxsT4tS977FfEXXaMzkbxZNLVRc90v949NgdfeJYLYyYe6c5fhcQkiIPsy3TgOCErSpaJWGvw=="
},
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -3979,6 +3985,11 @@
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"elmah.io.javascript": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/elmah.io.javascript/-/elmah.io.javascript-3.7.0.tgz",
"integrity": "sha512-s7yyLo8tlZPURYxsT4tS977FfEXXaMzkbxZNLVRc90v949NgdfeJYLYyYe6c5fhcQkiIPsy3TgOCErSpaJWGvw=="
},
"emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",

+ 1
- 0
package.json 查看文件

@@ -16,6 +16,7 @@
"bcryptjs": "^2.4.3",
"config": "^3.3.7",
"cors": "^2.8.5",
"elmah.io.javascript": "^3.7.0",
"express": "^4.18.1",
"express-jwt": "^7.7.2",
"helmet": "^5.1.0",

+ 1
- 0
src/endpoints/user.js 查看文件

@@ -7,6 +7,7 @@ const getUsers = async (req, res, next) => {
const allUsers = await User.find({})
return res.status(200).send(allUsers)
} catch (e) {
// TODO: Jel i ovde treba next(e)?
return res.status(500).send('Internal server error!')
}
}

+ 0
- 27
src/logging/logger.js 查看文件

@@ -1,27 +0,0 @@
const winston = require('winston');

const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
defaultMeta: { service: 'user-service' },
transports: [
//
// - Write all logs with importance level of `error` or less to `error.log`
// - Write all logs with importance level of `silly` or less to `all.log`
//
new winston.transports.File({ filename: 'loggerFiles/error.log', level: 'error' }),
new winston.transports.File({ filename: 'loggerFiles/all.log', level: 'silly' }),
],
});

//
// If we're not in production then log to the `console` with the format:
// `${info.level}: ${info.message} JSON.stringify({ ...rest }) `
//
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: winston.format.simple(),
}));
}

module.exports = logger

+ 10
- 0
src/logging/loggerElmah.js 查看文件

@@ -0,0 +1,10 @@
// const Elmahio = require("elmah.io.javascript")
//
// // TODO: da li ovo treba u configu (appsettings.json) da bude ili moze ovde hardkodirano
// const loggerElmah = new Elmahio({
// apiKey: 'API_KEY',
// logId: 'LOG_ID',
// application: 'diligent-node-api'
// })
//
// module.exports = loggerElmah

+ 20
- 0
src/logging/loggerWinston.js 查看文件

@@ -0,0 +1,20 @@
const winston = require('winston')
const config = require('config')

const loggerWinston = winston.createLogger({
level: 'info',
format: winston.format.json(),
defaultMeta: { service: 'user-service' },
transports: [
new winston.transports.File({ filename: 'loggerFiles/error.log', level: 'error' }),
new winston.transports.File({ filename: 'loggerFiles/all.log', level: 'silly' }),
],
});

if (config.util.getEnv('NODE_ENV') !== 'production') {
loggerWinston.add(new winston.transports.Console({
format: winston.format.simple(),
}));
}

module.exports = loggerWinston

+ 10
- 0
src/middleware/errorHandling.js 查看文件

@@ -1,5 +1,15 @@
//const loggerElmah = require('../logging/loggerElmah')
const loggerWinston = require('../logging/loggerWinston')
const config = require('config')
const errorLogger = (err, req, res, next) => {
console.error(err)
if (config.util.getEnv('NODE_ENV') === 'development')
loggerWinston.error(err)
// else
// loggerElmah.error('There has been an error', err)
next(err)
}

+ 2
- 17
src/middleware/requestLogging.js 查看文件

@@ -1,24 +1,9 @@
const logger = require("../logging/logger")
const logger = require("../logging/loggerWinston")
const requestLogging = async (req, res, next) => {
res.header("Content-Type", 'application/json');
const reqData = JSON.stringify({
headers: req.headers,
method: req.method,
url: req.url,
httpVersion: req.httpVersion,
body: req.body,
cookies: req.cookies,
path: req.path,
protocol: req.protocol,
query: req.query,
hostname: req.hostname,
ip: req.ip,
originalUrl: req.originalUrl,
params: req.params,
})
logger.silly((JSON.stringify(reqData)))
logger.silly(req)
next()
}

+ 1
- 1
src/server.js 查看文件

@@ -13,7 +13,7 @@ const cors = require('cors') //Cross-origin resource sharing
const helmet = require('helmet') //Basic protection against attacks like XSS
const config = require('config') //Default configuration file

//console.log(config.util.getEnv('NODE_ENV'))
// console.log(config.util.getEnv('NODE_ENV'))

const swaggerOptions = {
swaggerDefinition: {

正在加载...
取消
保存