{"id":16809545,"url":"https://github.com/cheton/universal-logger","last_synced_at":"2025-07-18T19:34:32.978Z","repository":{"id":57386584,"uuid":"90472878","full_name":"cheton/universal-logger","owner":"cheton","description":"A universal logging library for Node and the browser.","archived":false,"fork":false,"pushed_at":"2019-08-27T11:42:02.000Z","size":142,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-30T00:00:18.678Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://cheton.github.io/universal-logger/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cheton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"patreon":null,"open_collective":"cheton","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-05-06T15:34:38.000Z","updated_at":"2024-04-16T04:36:16.000Z","dependencies_parsed_at":"2022-09-05T12:21:26.669Z","dependency_job_id":null,"html_url":"https://github.com/cheton/universal-logger","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheton%2Funiversal-logger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheton%2Funiversal-logger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheton%2Funiversal-logger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheton%2Funiversal-logger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cheton","download_url":"https://codeload.github.com/cheton/universal-logger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248281388,"owners_count":21077423,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T10:13:11.974Z","updated_at":"2025-04-11T01:21:07.794Z","avatar_url":"https://github.com/cheton.png","language":"JavaScript","readme":"# universal-logger [![build status](https://travis-ci.org/cheton/universal-logger.svg?branch=master)](https://travis-ci.org/cheton/universal-logger) [![Coverage Status](https://coveralls.io/repos/github/cheton/universal-logger/badge.svg?branch=master)](https://coveralls.io/github/cheton/universal-logger?branch=master)\n\n[![NPM](https://nodei.co/npm/universal-logger.png?downloads=true\u0026stars=true)](https://www.npmjs.com/package/universal-logger)\n\n**A universal logging library for Node and the browser**\n \n![image](https://cloud.githubusercontent.com/assets/447801/25939476/96bd5568-3665-11e7-9b6f-b96fe0dc73d8.png)\n\n## Installation\n\n```sh\nnpm install --save universal-logger\n```\n\n### Browser\n\nUse [universal-logger-browser](https://github.com/cheton/universal-logger-browser/) to display logs in the browser console.\n```sh\nnpm install --save universal-logger-browser\n```\n\n## Usage\n\n```js\nimport emoji from 'node-emoji';\nimport logger, { TRACE, DEBUG, INFO, WARN, ERROR, OFF } from 'universal-logger';\nimport { minimal } from 'universal-logger-browser';\n\nconst log = logger() // Returns the global logger instance\n    .use(minimal())\n    .on('log', (context, messages) =\u003e {\n        // Custom log processing\n    });\n\nlog.disableStackTrace();\nlog.setLevel(TRACE);\n\nlog.log(INFO, 'The logger has initialized');\nlog.trace(emoji.get('mostly_sunny'));\nlog.debug(emoji.get('sun_small_cloud'));\nlog.info(emoji.get('barely_sunny'));\nlog.warn(emoji.get('rain_cloud'));\nlog.error(emoji.get('lightning_cloud'));\n```\n\n![image](https://cloud.githubusercontent.com/assets/447801/25858187/b7290152-350d-11e7-83bb-41fa6151fa6d.png)\n\n### Log Level\n\n```js\nlog.getLevel();\nlog.setLevel(TRACE);\nlog.setLevel(OFF); // Turn off logging\n```\n\n### Custom Log Level\n\n```js\nimport logger, { defineLogLevel } from 'universal-logger';\nimport { minimal } from 'universal-logger-browser';\n\nconst SILLY = defineLogLevel('silly', 0);\nconst VERBOSE = defineLogLevel('verbose', 1);\nconst INFO = defineLogLevel('info', 2);\nconst WARN = defineLogLevel('warn', 3);\nconst ERROR = defineLogLevel('error', 4);\nconst FATAL = defineLogLevel('fatal', 5);\n\nconst log = logger()\n    .use(minimal());\n\nlog.setLevel(SILLY);\nlog.log(SILLY, 'Custom Log Level');\n```\n\n### Enable/Disable Stack Trace\n\n```js\nlog.enableStackTrace();\nlog.disableStackTrace();\n```\n\n### Custom Log Processing\n\n```js\nlog.on('log', (context, messages) =\u003e {\n    // Custom log processing\n});\n```\n\n### Namespace\n\n![image](https://cloud.githubusercontent.com/assets/447801/25858521/84e4ae20-350e-11e7-8eb0-ab3d4d2cf3d0.png)\n\n```js\nimport emoji from 'node-emoji';\nimport logger, { DEBUG } from 'universal-logger';\nimport { minimal } from 'universal-logger-browser';\n\nconst namespace = emoji.get('rainbow');\nconst contextLog = logger(namespace) // Returns a logger instance with the given namespace\n    .use(minimal())\n    .on('log', (context, messages) =\u003e {\n        console.log('Custom log processing:', context, messages);\n    });\n\ncontextLog.enableStackTrace();\ncontextLog.setLevel(DEBUG);\n\ncontextLog.trace(emoji.get('mostly_sunny'));\ncontextLog.debug(emoji.get('sun_small_cloud'));\ncontextLog.info(emoji.get('barely_sunny'));\ncontextLog.warn(emoji.get('rain_cloud'));\ncontextLog.error(emoji.get('lightning_cloud'));\n```\n\n## Browser Logging\n\nhttps://github.com/cheton/universal-logger-browser\n\n### Minimal\n\n![image](https://cloud.githubusercontent.com/assets/447801/25939366/34f461fa-3665-11e7-9d03-0042fda4c32e.png)\n\n```js\nimport logger, { TRACE } from 'universal-logger';\nimport { minimal } from 'universal-logger-browser';\n\nconst log = logger()\n    .use(minimal());\n\nlog.enableStackTrace();\nlog.setLevel(TRACE);\n\nlog.log(INFO, 'The logger has initialized');\nlog.trace(emoji.get('mostly_sunny'));\nlog.debug(emoji.get('sun_small_cloud'));\nlog.info(emoji.get('barely_sunny'));\nlog.warn(emoji.get('rain_cloud'));\nlog.error(emoji.get('lightning_cloud'));\n```\n\n### Styleable\n\n![image](https://cloud.githubusercontent.com/assets/447801/25939476/96bd5568-3665-11e7-9b6f-b96fe0dc73d8.png)\n\n```js\nimport logger, { TRACE } from 'universal-logger';\nimport { styleable } from 'universal-logger-browser';\n\nconst log = logger()\n    .use(styleable({\n        showTimestamp: true\n    }));\n\nlog.enableStackTrace();\nlog.setLevel(TRACE);\n\nlog.log(INFO, 'The logger has initialized');\nlog.trace(emoji.get('mostly_sunny'));\nlog.debug(emoji.get('sun_small_cloud'));\nlog.info(emoji.get('barely_sunny'));\nlog.warn(emoji.get('rain_cloud'));\nlog.error(emoji.get('lightning_cloud'));\n```\n\n## Plugins\n\n* [universal-logger-browser](https://github.com/cheton/universal-logger-browser) - Browser plugins for universal logger.\n\n## License\n\nMIT\n","funding_links":["https://opencollective.com/cheton"],"categories":["Logging"],"sub_categories":["React Components"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheton%2Funiversal-logger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheton%2Funiversal-logger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheton%2Funiversal-logger/lists"}