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

log-detail

v5.0.1

Published

Custom log format ready to go out of the box for logging to Splunk with great detail and developer friendliness

Downloads

51

Readme

Log Detail

A log utility that is ready made to work with Splunk to provide verbose, detailed log events right out of the box.

Configuration

appName (string) [Default: 'MyApp']

The name of the application that can be included in log event

enabled (boolean) [Default: true]

Controls whether or not log events should be written.

format (string) [Default: '$timestamp $appName $namespace $uuid $level $data $message']

The format of log output. The fields available for use are all listed in the default value.

level (string) [Default: 'info'] [Options: 'debug', 'info', 'warn', 'error', 'fatal']

The log level threshold for output. If an event level is not greater than or equal to the set level the event will not be written.

timezone (string) [Default: 'local'] [Options: 'local', 'utc']

Configure whether or not to use local time or utc time. Timestamps are in ISO format.

Optional Parameters

Data Object

If you provide a generic object as an additional parameter for write methods (debug, info, warn, error, fatal) it will be included in the output broken into key/value pairs. The values will be passed through JSON.stringify in the event an object or array is provided with a key.

Error

If you pass an object that is an instance of the Error type, it will automatically be pushed into the data output of the event with the error key.

UUID

If you pass a string it will be used as the unique identifier for the log event. This can be useful if you want to use the same uuid for a series of log events. Such as tying them all to a single http request.

Example

Javascript

const { Writer } = require('log-detail');

//one time only. Or just use the default and not set it at all.
Writer.setGlobalConfiguration({
  appName: 'MyApp',
  level: 'debug'
});

let userLog = new Writer('api:user');
let groupLog = new Writer('api:group');

userLog.info('New user created', { username: 'Joel' });
groupLog.info('New group created', { groupname: 'MyGroup' });
specificGroup.info('User added to group', { username: 'Joel' });

Typescript

import { Writer } from 'log-detail';

//one time only. Or just use the default and not set it at all.
Writer.setGlobalConfiguration({
  appName: 'MyApp',
  level: 'debug'
});

let userLog = new Writer('api:user');
let groupLog = new Writer('api:group');

userLog.info('New user created', { username: 'Joel' });
groupLog.info('New group created', { groupname: 'MyGroup' });
specificGroup.info('User added to group', { username: 'Joel' });