Nuxt 3/4 module for @wsms/logger — structured file logging with auto-imports for both server routes and Vue components.
- Auto-imported
useLogger()in server routes (Nitro) and pages/components - SSR: writes directly to file via
@wsms/logger - Client-side: forwards logs to a built-in server endpoint (
/_wsms/log) which writes to file $loggeravailable viauseNuxtApp()in components- Full TypeScript support
npm install @wsms/logger @wsms/logger-connect-nuxtnuxt.config.ts:
export default defineNuxtConfig({
modules: ['@wsms/logger-connect-nuxt'],
wsmsLogger: {
logger: {
logFilePath: './logs/app.log',
},
// configPath: './logger.config.json',
},
})See @wsms/logger for the full list of logger options and configuration file format.
useLogger() is auto-imported in all Nitro server routes and plugins:
// server/api/users.get.ts
export default defineEventHandler(() => {
const logger = useLogger()
logger.info('fetching users')
return []
})// server/plugins/init.ts
export default defineNitroPlugin(() => {
const logger = useLogger()
logger.info('server started')
})useLogger() is auto-imported in Vue components and pages:
<script setup lang="ts">
const logger = useLogger()
logger.info('page loaded')
</script>Or via useNuxtApp():
const { $logger } = useNuxtApp()
$logger.warn('something happened')| Context | Behavior |
|---|---|
| Server (SSR / Nitro) | Writes directly to file via @wsms/logger |
| Client (browser) | POSTs to /_wsms/log → server writes to file |
The internal /_wsms/log endpoint is registered automatically by the module. You do not need to create it.
| Option | Type | Description |
|---|---|---|
logger |
Partial<LoggerOptions> |
Logger options (logFilePath, rotation, etc.) |
configPath |
string |
Path to a logger.config.json file |
npm install
npm run build
npm run dev # watch mode
npm run lintMIT