nuxt-server-log 0.1.1 → 0.1.3
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 +47 -0
- package/dist/module.json +4 -1
- package/dist/module.mjs +11 -2
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -62,6 +62,53 @@ export default defineNuxtConfig({
|
|
|
62
62
|
|
|
63
63
|
That's it. Requests are now logged to the server console as JSON. ✨
|
|
64
64
|
|
|
65
|
+
## Using the logger
|
|
66
|
+
|
|
67
|
+
Besides automatic per-request logging, the module exposes a `logger` you can use
|
|
68
|
+
anywhere in your server code (API routes, server plugins, middleware, utilities)
|
|
69
|
+
to emit your own structured log lines. Each entry is enriched with the active
|
|
70
|
+
request's `requestId`, so your logs line up with the per-request log.
|
|
71
|
+
|
|
72
|
+
The `logger` is **auto-imported** — just use it, no import needed:
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
// server/api/users.get.ts
|
|
76
|
+
export default defineEventHandler(async () => {
|
|
77
|
+
logger.info("Fetching users");
|
|
78
|
+
|
|
79
|
+
try {
|
|
80
|
+
const users = await getUsers();
|
|
81
|
+
logger.debug("Users fetched", { count: users.length });
|
|
82
|
+
return users;
|
|
83
|
+
} catch (error) {
|
|
84
|
+
logger.error("Failed to fetch users", error as Error);
|
|
85
|
+
throw error;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
If you prefer an explicit import (or your editor's auto-import setup needs it),
|
|
91
|
+
import it from `#imports`:
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
import { logger } from "#imports";
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Available methods
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
logger.debug(message: string, data?: Record<string, unknown>);
|
|
101
|
+
logger.info(message: string, data?: Record<string, unknown>);
|
|
102
|
+
logger.warn(message: string, data?: Record<string, unknown>);
|
|
103
|
+
logger.error(message: string, error?: Error, data?: Record<string, unknown>);
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
- The optional `data` object is merged into the emitted JSON, so you can attach
|
|
107
|
+
any structured fields you like.
|
|
108
|
+
- `logger.error` additionally captures the error type and stack trace (up to
|
|
109
|
+
`traceDepth` frames) and records it against the current request context.
|
|
110
|
+
- Messages below the configured `logLevel` are skipped.
|
|
111
|
+
|
|
65
112
|
## Configuration
|
|
66
113
|
|
|
67
114
|
Configure the module under the `serverLog` key in `nuxt.config.ts`:
|
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { defineNuxtModule, createResolver, addServerHandler, addServerPlugin } from 'nuxt/kit';
|
|
1
|
+
import { defineNuxtModule, createResolver, addServerHandler, addServerPlugin, addServerImports } from 'nuxt/kit';
|
|
2
2
|
|
|
3
3
|
const module$1 = defineNuxtModule({
|
|
4
4
|
meta: {
|
|
5
5
|
name: "nuxt-server-log",
|
|
6
|
-
configKey: "serverLog"
|
|
6
|
+
configKey: "serverLog",
|
|
7
|
+
compatibility: {
|
|
8
|
+
nuxt: ">=3.16.0"
|
|
9
|
+
}
|
|
7
10
|
},
|
|
8
11
|
defaults: {
|
|
9
12
|
enabled: true,
|
|
@@ -37,6 +40,12 @@ const module$1 = defineNuxtModule({
|
|
|
37
40
|
resolver.resolve("./runtime/server/plugins/apiInterceptor")
|
|
38
41
|
);
|
|
39
42
|
addServerPlugin(resolver.resolve("./runtime/server/plugins/errorLogger"));
|
|
43
|
+
addServerImports([
|
|
44
|
+
{
|
|
45
|
+
name: "logger",
|
|
46
|
+
from: resolver.resolve("./runtime/server/utils/logger")
|
|
47
|
+
}
|
|
48
|
+
]);
|
|
40
49
|
}
|
|
41
50
|
});
|
|
42
51
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-server-log",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "A Nuxt module for structured server-side logging",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"packageManager": "npm@10.9.2",
|
|
10
10
|
"engines": {
|
|
11
|
-
"node": "
|
|
11
|
+
"node": ">=18.12.0"
|
|
12
12
|
},
|
|
13
13
|
"author": {
|
|
14
14
|
"email": "hniakan@gmail.com",
|
|
@@ -64,10 +64,10 @@
|
|
|
64
64
|
"test:types": "vue-tsc --noEmit && cd playground && vue-tsc --noEmit"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
|
-
"nuxt": "^4.0.0"
|
|
67
|
+
"nuxt": "^3.16.0 || ^4.0.0"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@nuxt/kit": "^
|
|
70
|
+
"@nuxt/kit": "^3.16.0 || ^4.0.0"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@nuxt/devtools": "^3.2.4",
|