{"id":42322,"library":"winston-json-formatter","title":"winston-json-formatter","description":"A JSON and console formatter for winston@3, version 0.10.0. Enables structured logging with configurable output formats (JSON or console) and automatic hostname detection. Supports direct error object logging, custom metadata, and environment-based format switching via NODE_ENV. Released under ISC license, maintained on GitHub by amida-tech. Differentiates from other formatters by offering a simple configuration interface inspired by winston's format system, though it uses the legacy `logger.format` assignment rather than the modern `format` pipeline.","status":"active","version":"0.10.0","language":"javascript","source_language":"en","source_url":"https://github.com/amida-tech/winston-json-formatter","tags":["javascript","formatter","logging","winston"],"install":[{"cmd":"npm install winston-json-formatter","lang":"bash","label":"npm"},{"cmd":"yarn add winston-json-formatter","lang":"bash","label":"yarn"},{"cmd":"pnpm add winston-json-formatter","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency for logger and transports","package":"winston","optional":false}],"imports":[{"note":"Package is ESM-only since v0.10.0; CommonJS require will fail.","wrong":"const configuredFormatter = require('winston-json-formatter')","symbol":"configuredFormatter","correct":"import { configuredFormatter } from 'winston-json-formatter'"},{"note":"Only a default export is provided; named import will result in undefined.","wrong":"import { configuredFormatter } from 'winston-json-formatter'","symbol":"default","correct":"import configuredFormatter from 'winston-json-formatter'"},{"note":"TypeScript users must use default import; types are included.","wrong":"import { configuredFormatter } from 'winston-json-formatter'","symbol":"configuredFormatter (TypeScript)","correct":"import configuredFormatter from 'winston-json-formatter'"}],"quickstart":{"code":"import winston from 'winston';\nimport configuredFormatter from 'winston-json-formatter';\n\nconst logger = winston.createLogger({\n    level: 'silly',\n    transports: [new winston.transports.Console()]\n});\n\nconst options = {\n    service: 'test-service',\n    logger: 'Winston-JSON-Formatter',\n    version: '1.0.0',\n    typeFormat: 'json'\n};\n\nlogger.format = configuredFormatter(options);\n\nlogger.info('Hello, world!');\nlogger.error(new Error('Something broke'));","lang":"typescript","description":"Sets up a Winston logger with JSON formatting using winston-json-formatter, demonstrating basic logging and error object handling."},"warnings":[{"fix":"Use import syntax or dynamic import().","message":"Package migrated to ESM-only in v0.10.0; CommonJS require() will fail.","severity":"breaking","affected_versions":">=0.10.0"},{"fix":"Set logger.format = configuredFormatter(options) directly.","message":"The formatter is assigned to logger.format, overriding the default format. Do not use winston.format.combine() with this package.","severity":"gotcha","affected_versions":"*"},{"fix":"Set NODE_ENV to production or another value to use JSON format.","message":"NODE_ENV=dev or NODE_ENV=development forces console format regardless of options.typeFormat.","severity":"gotcha","affected_versions":"*"},{"fix":"Use the upper-case environment variable NODE_ENV instead.","message":"The 'node_env' option is misnamed (lowercase with underscore) compared to standard NODE_ENV.","severity":"deprecated","affected_versions":"*"}],"env_vars":null,"search_vec":"'0.10.0':14 '3':12 'amida':54 'amida-tech':53 'assign':78 'automat':26 'base':39 'configur':19,64 'consol':8,24 'custom':34 'detect':28 'differenti':56 'direct':30 'enabl':15 'env':44 'environ':38 'environment-bas':37 'error':31 'format':21,40,70,83 'formatt':4,9,59,86 'github':51 'hostnam':27 'inspir':66 'interfac':65 'isc':47 'javascript':85 'json':3,6,22 'legaci':76 'licens':48 'log':17,33,87 'logger.format':77 'maintain':49 'metadata':35 'modern':82 'node':43 'object':32 'offer':61 'output':20 'pipelin':84 'rather':79 'releas':45 'simpl':63 'structur':16 'support':29 'switch':41 'system':71 'tech':55 'though':72 'use':74 'version':13 'via':42 'winston':2,11,68,88 'winston-json-formatt':1","created_at":"2026-06-04T18:56:41.864786+00:00","updated_at":"2026-06-04T18:56:41.864786+00:00","problems":[{"fix":"npm install winston-json-formatter && use import configuredFormatter from 'winston-json-formatter'.","cause":"Package not installed or wrong import syntax in CommonJS.","error":"Cannot find module 'winston-json-formatter'"},{"fix":"Change to import configuredFormatter from 'winston-json-formatter'.","cause":"Using named import { configuredFormatter } instead of default import.","error":"TypeError: configuredFormatter is not a function"},{"fix":"Set logger.format = configuredFormatter(options) before any logging calls.","cause":"Logger format is frozen in winston@3; must assign during creation.","error":"TypeError: Cannot assign to read only property 'format' of object '#<Logger>'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/amida-tech/winston-json-formatter#readme","github":"https://github.com/amida-tech/winston-json-formatter","docs":null,"changelog":null,"pypi":null,"npm":"winston-json-formatter","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-04","next_check":"2026-09-02","install_tag":null}}