@holz/logger 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,51 @@
1
+ # `@holz/logger`
2
+
3
+ A lightweight and customizable logger for Node.js and browser environments.
4
+
5
+ ## Installation
6
+
7
+ Install with [npm](https://www.npmjs.com/):
8
+
9
+ ```bash
10
+ npm install @holz/logger
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ To use the logger, import it into your project:
16
+
17
+ ```typescript
18
+ import logger from '@holz/logger';
19
+ ```
20
+
21
+ After that, you can start logging messages with different log levels:
22
+
23
+ ```typescript
24
+ logger.debug('This is a debug message');
25
+ logger.info('This is an info message');
26
+ logger.warn('This is a warning message');
27
+ logger.error('This is an error message');
28
+ ```
29
+
30
+ By default, logs are formatted with a timestamp, log level, namespace (if provided), and message. You can also add a namespace to your logs to help organize them:
31
+
32
+ ```typescript
33
+ const dbLogger = logger.namespace('db');
34
+ dbLogger.info('Connected to database');
35
+ ```
36
+
37
+ If you don't see logs, you may need to enable them. You can do this by setting the `DEBUG` environment variable to `your-app*` or setting `localStorage.debug` to `your-app*`. For example, to enable logs in a Node.js script:
38
+
39
+ ```bash
40
+ DEBUG='your-app*' node script.js
41
+ ```
42
+
43
+ Holz is suitable for use in other libraries as you can enable logs when needed, without cluttering downstream application logs.
44
+
45
+ ## Customizing the Logger
46
+
47
+ `@holz/logger` is a bundle of plugins that can be used separately to build a custom logger. The library uses several plugins, such as [`@holz/ansi-terminal-backend`](https://github.com/PsychoLlama/holz/tree/main/packages/holz-ansi-terminal-backend) for colorizing logs, [`@holz/stream-backend`](https://github.com/PsychoLlama/holz/tree/main/packages/holz-stream-backend) for writing logs to files in plain text format, and [`@holz/console-backend`](https://github.com/PsychoLlama/holz/tree/main/packages/holz-console-backend) for logging to the browser console.
48
+
49
+ Although the bundled logger is opinionated and not configurable, you can easily use the individual plugins to create a logger tailored to your needs. The logger's foundation is the `createLogger(backend)` function from [`@holz/core`](https://github.com/PsychoLlama/holz/tree/main/packages/holz-core), and you can select the plugins to include based on your requirements.
50
+
51
+ For more details check out [the documentation](https://github.com/PsychoLlama/holz/blob/main/README.md) or look at [an example](https://github.com/PsychoLlama/holz/blob/main/packages/holz-logger/src/index.browser.ts).
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("@holz/console-backend"),r=require("@holz/core"),o=require("@holz/env-filter"),t=r.createLogger(o.createEnvironmentFilter({processor:e.createConsoleBackend()}));exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("@holz/console-backend"),r=require("@holz/core"),t=require("@holz/env-filter"),o=r.createLogger(t.createEnvironmentFilter({processor:e.createConsoleBackend(),defaultPattern:""}));exports.default=o;
@@ -1,9 +1,12 @@
1
- import { createConsoleBackend as r } from "@holz/console-backend";
2
- import { createLogger as e } from "@holz/core";
1
+ import { createConsoleBackend as e } from "@holz/console-backend";
2
+ import { createLogger as r } from "@holz/core";
3
3
  import { createEnvironmentFilter as o } from "@holz/env-filter";
4
- const c = e(
5
- o({ processor: r() })
4
+ const n = r(
5
+ o({
6
+ processor: e(),
7
+ defaultPattern: ""
8
+ })
6
9
  );
7
10
  export {
8
- c as default
11
+ n as default
9
12
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("node:tty"),s=require("@holz/ansi-terminal-backend"),e=require("@holz/core"),t=require("@holz/env-filter"),o=require("@holz/stream-backend"),{NODE_ENV:n}=process.env,c=r.isatty(process.stderr.fd)&&process.stderr.hasColors(3),a=e.createLogger(e.filter(()=>n!=="test",t.createEnvironmentFilter({processor:c?s.createAnsiTerminalBackend():o.createStreamBackend({stream:process.stderr})})));exports.default=a;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("node:tty"),t=require("@holz/ansi-terminal-backend"),e=require("@holz/core"),s=require("@holz/env-filter"),o=require("@holz/stream-backend"),{NODE_ENV:n}=process.env,c=r.isatty(process.stderr.fd)&&process.stderr.hasColors(3),a=e.createLogger(e.filter(()=>n!=="test",s.createEnvironmentFilter({defaultPattern:"",processor:c?t.createAnsiTerminalBackend():o.createStreamBackend({stream:process.stderr})})));exports.default=a;
@@ -1,13 +1,14 @@
1
1
  import { isatty as r } from "node:tty";
2
2
  import { createAnsiTerminalBackend as e } from "@holz/ansi-terminal-backend";
3
- import { createLogger as o, filter as s } from "@holz/core";
4
- import { createEnvironmentFilter as t } from "@holz/env-filter";
5
- import { createStreamBackend as c } from "@holz/stream-backend";
6
- const { NODE_ENV: m } = process.env, a = r(process.stderr.fd) && process.stderr.hasColors(3), l = o(
7
- s(
8
- () => m !== "test",
9
- t({
10
- processor: a ? e() : c({ stream: process.stderr })
3
+ import { createLogger as t, filter as o } from "@holz/core";
4
+ import { createEnvironmentFilter as s } from "@holz/env-filter";
5
+ import { createStreamBackend as a } from "@holz/stream-backend";
6
+ const { NODE_ENV: c } = process.env, m = r(process.stderr.fd) && process.stderr.hasColors(3), l = t(
7
+ o(
8
+ () => c !== "test",
9
+ s({
10
+ defaultPattern: "",
11
+ processor: m ? e() : a({ stream: process.stderr })
11
12
  })
12
13
  )
13
14
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@holz/logger",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "A preconfigured, general-purpose logger",
5
5
  "type": "module",
6
6
  "main": "./dist/browser-logger.cjs",
@@ -49,11 +49,11 @@
49
49
  "test:types": "tsc"
50
50
  },
51
51
  "dependencies": {
52
- "@holz/ansi-terminal-backend": "^0.5.0",
53
- "@holz/console-backend": "^0.5.0",
54
- "@holz/core": "^0.5.0",
55
- "@holz/env-filter": "^0.5.0",
56
- "@holz/stream-backend": "^0.5.0"
52
+ "@holz/ansi-terminal-backend": "^0.6.0",
53
+ "@holz/console-backend": "^0.6.0",
54
+ "@holz/core": "^0.6.0",
55
+ "@holz/env-filter": "^0.6.0",
56
+ "@holz/stream-backend": "^0.6.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@types/node": "^18.14.0",
@@ -3,7 +3,10 @@ import { createLogger } from '@holz/core';
3
3
  import { createEnvironmentFilter } from '@holz/env-filter';
4
4
 
5
5
  const logger = createLogger(
6
- createEnvironmentFilter({ processor: createConsoleBackend() })
6
+ createEnvironmentFilter({
7
+ processor: createConsoleBackend(),
8
+ defaultPattern: '',
9
+ })
7
10
  );
8
11
 
9
12
  export default logger;
package/src/index.node.ts CHANGED
@@ -13,6 +13,7 @@ const logger = createLogger(
13
13
  filter(
14
14
  () => NODE_ENV !== 'test',
15
15
  createEnvironmentFilter({
16
+ defaultPattern: '',
16
17
  processor: supportsAnsiColors
17
18
  ? createAnsiTerminalBackend()
18
19
  : createStreamBackend({ stream: process.stderr }),