AITC logging utility with requestId and service name support. Built on winston with customizable transports.
npm install @aitc/loggerAITC logging utility with requestId and service name support. Built on winston with customizable transports.
``bash`
npm install @aitc/logger
`javascript
const { createLogger } = require("@aitc/logger");
const logger = createLogger({
level: process.env.LOG_LEVEL || "info",
service: "property-service",
transports: ["console", "file"],
logDir: __dirname,
});
// Use the logger
logger.info("Application started", { requestId: "abc123" });
logger.error("Something went wrong", { error: error.message, requestId: "abc123" });
`
Creates a logger instance with the following options:
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| level | string | process.env.LOG_LEVEL \|\| "info" | Log level (info, error, warn, debug) |service
| | string | null | Service name to include in logs |transports
| | Array["console"] | Transport types: "console", "file" |logDir
| | string | process.cwd() | Directory for log files (only if file transport enabled) |errorLogFile
| | string | "error.log" | Error log filename |combinedLogFile
| | string | "combined.log" | Combined log filename |
`javascript
const { createLogger } = require("@aitc/logger");
const logger = createLogger({
level: "info",
service: "my-service",
});
logger.info("User logged in", { userId: 123, requestId: "req-456" });
logger.error("Database connection failed", { error: err.message, requestId: "req-456" });
`
`javascript
const { createLogger } = require("@aitc/logger");
const path = require("path");
const logger = createLogger({
level: process.env.LOG_LEVEL || "info",
service: "property-service",
transports: ["console", "file"],
logDir: path.join(__dirname, "logs"),
errorLogFile: "error.log",
combinedLogFile: "combined.log",
});
`
`javascript
const { createLogger } = require("@aitc/logger");
// LOG_LEVEL is automatically read from process.env
const logger = createLogger({
service: "auth-service",
transports: ["console"],
});
`
If you're migrating from the old logger that used a config file:
Before:
`javascript`
const logger = require("../utils/logger");
const config = require("../config/config");
After:
`javascript
const { createLogger } = require("@aitc/logger");
const config = require("../config/config");
const logger = createLogger({
level: config.log_level || process.env.LOG_LEVEL || "info",
service: "property-service",
transports: ["console", "file"],
logDir: __dirname,
});
`
Parameters:
- message (string): Log messagemeta
- (object): Metadata object. Special fields:requestId
- : Request ID to include in logservice
- : Service name (overrides default service)
- Any other fields will be JSON stringified
Logs are formatted as:
``
YYYY-MM-DD HH:mm:ss [LEVEL] [service-name] [request-id: requestId] message {metadata}
Example:
``
2026-01-09 12:30:45 [INFO] [property-service] [request-id: abc123] User logged in {"userId":123}
- LOG_LEVEL`: Sets the default log level (info, error, warn, debug)
ISC
For issues and questions, please contact the AITC development team.