npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@jackdbd/hapi-logger-plugin

v1.2.0

Published

Hapi plugin for a JSON logger

Downloads

2

Readme

@jackdbd/hapi-logger-plugin

npm version Snyk Vulnerabilities for npm package

Hapi plugin that uses tags-logger for logging events emitted by server.log() and request.log().

Installation

npm install @jackdbd/hapi-logger-plugin

Usage

structured logging

import logger from '@jackdbd/hapi-logger-plugin'

export const app = async (config) => {

  const server = Hapi.server({ port: 8080 })

  await server.register({ plugin: logger })

  return { server }
}

unstructured logging

import logger from '@jackdbd/hapi-logger-plugin'

export const app = async (config) => {

  const server = Hapi.server({ port: 8080 })

  await server.register({
    plugin: logger,
    options: {
      namespace: 'my-app'
    }
  })

  return { server }
}

example: Cloud Run service

You likely want to use unstructured logging when the code is running on Cloud Run, and unstructured logging when it's running locally (regardless whether it a containerized Node.js app or a containerized one).

Also, you might want to validate the log statements only in development.

Here is a configuration you might try:

import logger from '@jackdbd/hapi-logger-plugin'

export const app = async (config) => {

  const server = Hapi.server({ port: 8080 })

  await server.register({
    plugin: logger,
    options: {
      // when the code runs as a Cloud Run service, don't set `namespace`
      namespace: process.env.K_SERVICE ? undefined : 'my-app',
      // when in production, don't validate log statements
      should_validate_log_statements: process.env.NODE_ENV === 'production' ? false : true
    }
  })

  return { server }
}

Configuration

Environment variables

| Environment variable | Explanation | | --- | --- | | DEBUG | You must set this environment variable if you want to use unstructured logging and see some output. For example, if you set namespace: 'my-app', Hapi server.log() events will be logged to the my-app/log-event namespace, and Hapi request.log() events will be logged to the my-app/request-event namespace. So, for example, DEBUG=my-app/* will log all events, while DEBUG=my-app/request-event or DEBUG=my-app/*,-my-app/log-event will log only the request.log() events. |

Options

| Option | Default | Explanation | | --- | --- | --- | | channels | ['app'] | The event channels you want to log. | | namespace | undefined | The namespace for unstructured logging. This option has no effect when using structured logging. | | should_use_emoji_for_severity | true | Whether to use an emoji for the severity level, when using unstructured logging. This option has no effect when using structured logging. | | should_validate_log_statements | false when NODE_ENV is 'production', true otherwise | Whether each log statement should be validated against a Joi schema. |