@zimtsui/typelog 0.0.6 → 0.0.7
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 +23 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,8 +7,7 @@ TypeLog is a strongly typed logger for TypeScript.
|
|
|
7
7
|
## Usage
|
|
8
8
|
|
|
9
9
|
```ts
|
|
10
|
-
import { Channel } from '@zimtsui/typelog';
|
|
11
|
-
import { stderr } from 'node:process';
|
|
10
|
+
import { Channel, type LogEventTarget, LogEvent } from '@zimtsui/typelog';
|
|
12
11
|
|
|
13
12
|
// Declare all log levels whose values are sorted from verbose to severe.
|
|
14
13
|
enum Level { trace, debug, info, warn, error }
|
|
@@ -21,21 +20,35 @@ const envlevels: Record<string, Level> = {
|
|
|
21
20
|
};
|
|
22
21
|
|
|
23
22
|
// Determine the log level according to the environment variable.
|
|
24
|
-
const
|
|
23
|
+
declare const ENV: string;
|
|
24
|
+
const envLevel = envlevels[ENV] ?? Level.info;
|
|
25
|
+
|
|
26
|
+
// Create an event target for listening to log events.
|
|
27
|
+
const eventTarget = new EventTarget() as LogEventTarget<{
|
|
28
|
+
symbolChannelEventType: [typeof Level, payloadType: symbol];
|
|
29
|
+
numberChannelEventType: [typeof Level, payloadType: number];
|
|
30
|
+
}>;
|
|
31
|
+
eventTarget.addEventListener('numberChannelEventType', (evt: LogEvent<'numberChannelEventType', typeof Level, number>) => {
|
|
32
|
+
if (evt.level >= envLevel) console.log(evt.detail satisfies number);
|
|
33
|
+
});
|
|
34
|
+
eventTarget.addEventListener('symbolChannelEventType', (evt: LogEvent<'symbolChannelEventType', typeof Level, symbol>) => {
|
|
35
|
+
if (evt.level >= envLevel) console.log(evt.detail satisfies symbol);
|
|
36
|
+
});
|
|
37
|
+
|
|
25
38
|
|
|
26
39
|
// Create loggers.
|
|
27
40
|
const logger = {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (level >= envLevel) console.error(message);
|
|
41
|
+
symbolChannel: Channel.attach(eventTarget, 'symbolChannelEventType', Level),
|
|
42
|
+
numberChannel: Channel.attach(eventTarget, 'numberChannelEventType', Level),
|
|
43
|
+
stringChannel: Channel.create<typeof Level, string>(Level, (message, level) => {
|
|
44
|
+
if (level >= envLevel) console.log(message);
|
|
33
45
|
}),
|
|
34
46
|
};
|
|
35
47
|
|
|
36
48
|
// Use loggers.
|
|
37
|
-
logger.
|
|
38
|
-
logger.
|
|
49
|
+
logger.symbolChannel.info(Symbol('Hello, world!'));
|
|
50
|
+
logger.numberChannel.warn(10086);
|
|
51
|
+
logger.stringChannel.trace('Hello, world!');
|
|
39
52
|
```
|
|
40
53
|
|
|
41
54
|
## Good Practice for Node.js
|