Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
A logging wrapper around winston and sentry.
var Log = require('pn-logging').Log;
var logger = new Log(config);
// Call methods
logger.info('Message', meta);
logger.error('Error message', err);
// or
logger.error('Error message', meta, err);
// Use Express middleware
app.use(logger.middleware());
app.get('/', (req, res, next) => {
// ...
res.locals._log.addMeta({ keyName: 'value' });
// ...
})
The big picture idea is that every req/res gets one log message, the level of which is set according to the final response status code:
The middleware attaches a log object to every req/res lifecycle as
res.locals_log
. This object exposes methods like addMeta
and addError
that
attach fields to the final log for that req/res cycle.
addMeta
attaches useful and relevant info about that req/res cycle as k/v
pairs on its meta
property. addError
is a helper method that takes an
Error
, extracts useful info from it, and attaches it to meta
.
(Errors within a req/res lifecycle may also warrant their own ad-hoc log messages, such as if an API request to a service fails.)
If error object is passed to logger's logging methods, e.g. error
, in addition to sending data to defined transporter (most likely Loggly), the error will also be sent to Sentry.
var Log = require('pn-logging').Log;
var logger = new Log(config);
logger.error('Error message', {
tags: {key: 'value'}
}, err);
Refer to sentry docs.
tags
, fingerprint
, and level
properties of log meta object will be mapped to related sentry optional attributes. All other meta properties will become extra
property in sentry optional attributes.
The config
object passed to Log
constructor should look like:
var config = {
transports: [
{
Console: {
level: 'info',
json: true,
prettyPrint: true,
silent: true // for test
}
},
{
Loggly: {
level: 'warning',
json: true,
tag: 'APP_NAME',
subdomain: process.env.LOGGLY_SUBDOMAIN,
token: process.env.LOGGLY_TOKEN
}
}
],
sentry: {
// specify `false` here to disable sentry
dsn: 'https://*****@app.getsentry.com/xxxxx',
// pass directly to raven constructor refer to https://goo.gl/9Ud7Mz
options: {}
}
};
FAQs
A logging wrapper around winston and sentry.
We found that pn-logging demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.