user-managements-node-server
Version:
starter for express node server with user managements, authentication authorization
37 lines (32 loc) • 769 B
JavaScript
const getFriendlyLogObject = obj => (
Object
.entries(obj)
.map(([key, value]) =>(
`${key}: ${value}`
))
.join(',')
)
const getFriendlyLogObjectIfHasKeys = (obj, key) => (
Object
.keys(obj).length
? `${key}: { ${getFriendlyLogObject(obj) } }`
: ''
)
const auditLogger = logger => ({
body,
clientInfo: { ip },
originalUrl,
params,
query }) => {
const friendlyObjInfo = [
getFriendlyLogObjectIfHasKeys(body, 'body'),
getFriendlyLogObjectIfHasKeys(params, 'params'),
getFriendlyLogObjectIfHasKeys(query, 'query')
]
.filter(x => x)
.join(', ')
logger.info(
`${originalUrl}: { ip: ${ip}, ${ friendlyObjInfo} }`
)
}
export default auditLogger