2024-12-13 14:32:56 +05:30
# Logger Package
This package provides a logger and a request logger utility built using [Winston ](https://github.com/winstonjs/winston ). It offers customizable log levels using env and supports structured logging for general application logs and HTTP requests.
## Features.
2025-07-08 20:41:11 +05:30
2024-12-13 14:32:56 +05:30
- Dynamic log level configuration using env.
- Pre-configured winston logger for general usage (`logger` ).
- Request logger middleware that logs incoming request
## Usage
### Adding as a package
2025-07-08 20:41:11 +05:30
2024-12-13 14:32:56 +05:30
Add this package as a dependency in package.json
2025-07-08 20:41:11 +05:30
2024-12-13 14:32:56 +05:30
```typescript
dependency: {
...
@plane/logger ":"*",
...
}
```
### Importing the Logger
2025-07-08 20:41:11 +05:30
2024-12-13 14:32:56 +05:30
```typescript
2025-07-08 20:41:11 +05:30
import { logger, requestLogger } from "@plane/logger ";
2024-12-13 14:32:56 +05:30
```
2025-07-08 20:41:11 +05:30
2024-12-13 14:32:56 +05:30
### Usage
2025-07-08 20:41:11 +05:30
2024-12-13 14:32:56 +05:30
### `logger`: General Logger
2025-07-08 20:41:11 +05:30
2024-12-13 14:32:56 +05:30
Use this for general application logs.
```typescript
logger.info("This is an info log");
logger.warn("This is a warning");
logger.error("This is an error");
```
### `requestLogger`: Request Logger Middleware
2025-07-08 20:41:11 +05:30
2024-12-13 14:32:56 +05:30
Use this as a middleware for incoming requests
```typescript
2025-07-08 20:41:11 +05:30
const app = express();
app.use(requestLogger);
2024-12-13 14:32:56 +05:30
```
## Available Log Levels
2025-07-08 20:41:11 +05:30
2024-12-13 14:32:56 +05:30
- `error`
- `warn`
- `info` (default)
- `http`
- `verbose`
- `debug`
- `silly`
## Log file
2025-07-08 20:41:11 +05:30
- Log files are stored in logs folder of current working directory. Error logs are stored in files with format `error-%DATE%.log` and combined logs are stored with format `combined-%DATE%.log` .
2024-12-13 14:32:56 +05:30
- Log files have a 7 day rotation period defined.
## Configuration
2025-07-08 20:41:11 +05:30
- By default, the log level is set to `info` .
- You can specify a log level by adding a LOG_LEVEL in .env.