@holz/logger 0.5.0 → 0.6.1
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 +51 -0
- package/dist/browser-logger.cjs +1 -1
- package/dist/browser-logger.js +8 -5
- package/dist/server-logger.cjs +1 -1
- package/dist/server-logger.js +9 -8
- package/package.json +9 -9
- package/src/index.browser.ts +4 -1
- package/src/index.node.ts +3 -2
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).
|
package/dist/browser-logger.cjs
CHANGED
|
@@ -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"),
|
|
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;
|
package/dist/browser-logger.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { createConsoleBackend as
|
|
2
|
-
import { createLogger as
|
|
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
|
|
5
|
-
o({
|
|
4
|
+
const n = r(
|
|
5
|
+
o({
|
|
6
|
+
processor: e(),
|
|
7
|
+
defaultPattern: ""
|
|
8
|
+
})
|
|
6
9
|
);
|
|
7
10
|
export {
|
|
8
|
-
|
|
11
|
+
n as default
|
|
9
12
|
};
|
package/dist/server-logger.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("node:tty"),
|
|
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;
|
package/dist/server-logger.js
CHANGED
|
@@ -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
|
|
4
|
-
import { createEnvironmentFilter as
|
|
5
|
-
import { createStreamBackend as
|
|
6
|
-
const { NODE_ENV:
|
|
7
|
-
|
|
8
|
-
() =>
|
|
9
|
-
|
|
10
|
-
|
|
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.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "A preconfigured, general-purpose logger",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/browser-logger.cjs",
|
|
@@ -49,17 +49,17 @@
|
|
|
49
49
|
"test:types": "tsc"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@holz/ansi-terminal-backend": "^0.
|
|
53
|
-
"@holz/console-backend": "^0.
|
|
54
|
-
"@holz/core": "^0.
|
|
55
|
-
"@holz/env-filter": "^0.
|
|
56
|
-
"@holz/stream-backend": "^0.
|
|
52
|
+
"@holz/ansi-terminal-backend": "^0.6.0",
|
|
53
|
+
"@holz/console-backend": "^0.6.1",
|
|
54
|
+
"@holz/core": "^0.6.0",
|
|
55
|
+
"@holz/env-filter": "^0.6.1",
|
|
56
|
+
"@holz/stream-backend": "^0.6.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/node": "^18.14.0",
|
|
60
|
-
"@vitest/coverage-
|
|
61
|
-
"typescript": "^
|
|
60
|
+
"@vitest/coverage-v8": "^0.33.0",
|
|
61
|
+
"typescript": "^5.0.0",
|
|
62
62
|
"vite": "^4.0.0",
|
|
63
|
-
"vitest": "^0.
|
|
63
|
+
"vitest": "^0.33.0"
|
|
64
64
|
}
|
|
65
65
|
}
|
package/src/index.browser.ts
CHANGED
|
@@ -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({
|
|
6
|
+
createEnvironmentFilter({
|
|
7
|
+
processor: createConsoleBackend(),
|
|
8
|
+
defaultPattern: '',
|
|
9
|
+
}),
|
|
7
10
|
);
|
|
8
11
|
|
|
9
12
|
export default logger;
|
package/src/index.node.ts
CHANGED
|
@@ -13,11 +13,12 @@ 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 }),
|
|
19
|
-
})
|
|
20
|
-
)
|
|
20
|
+
}),
|
|
21
|
+
),
|
|
21
22
|
);
|
|
22
23
|
|
|
23
24
|
export default logger;
|