Skip to content

Commit ad21314

Browse files
committed
feat: add docs
1 parent 0293168 commit ad21314

File tree

1 file changed

+3
-150
lines changed

1 file changed

+3
-150
lines changed

README.md

+3-150
Original file line numberDiff line numberDiff line change
@@ -1,162 +1,15 @@
1-
# Logardian
1+
# NestJS Response Structure
22

3-
Inspired by NestJS Logger, Logardian was built to output minimalistic, readable logs.
3+
GraphQL Types and interfaces for great response
44

5-
## Roadmap
6-
7-
- Logging to file
8-
9-
105
## Installation
116

127
Requires node version >=12.х
138

149
```bash
15-
npm i --save logardian
16-
```
17-
18-
## Features
19-
20-
- Various layers of logs that can be turned on/off via .env (`LOGARDIAN_LABELS`)
21-
- In production mode debug() does not work
22-
- Datetime in UTC format
23-
- Format of logs: `[time] [level] [layer] [message]`
24-
- In debug mode the path and name of the function that called the log is displayed
25-
- Can be used instead of NestJS Logger
26-
- Can log any objects, arrays, variables
27-
- Modes: normal or json format output
28-
- Colors!
29-
30-
31-
## Usage/Examples
32-
33-
```ts
34-
import Logardian from 'logardian'
35-
36-
const logger = new Logardian()
37-
38-
logger.configure({
39-
trace: false
40-
})
41-
42-
logger.log(`Hi! I'm info log example`)
43-
logger.warn(`Hi! I'm warn log example`, { trace: false })
44-
logger.error(`Hi! I'm error log example`)
45-
logger.verbose(`Hi! I'm verbose log example`, { label: 'database' })
46-
logger.debug(`Hi! I'm debug log example`, { some: 'object' })
47-
```
48-
49-
***default output:***
50-
51-
![](https://i.ibb.co/0nRH2Yc/photo-2021-11-05-12-52-51.jpg)
52-
53-
54-
***json output:***
55-
56-
```ts
57-
logger.configure({
58-
json: true
59-
})
60-
```
61-
62-
```bash
63-
{
64-
"timestamp": "2021-11-05T05:54:10.920Z",
65-
"message": "Hi! I'm info log example",
66-
"level": "log"
67-
}
68-
{
69-
"timestamp": "2021-11-05T05:54:10.920Z",
70-
"message": "Hi! I'm warn log example",
71-
"level": "warn"
72-
}
73-
{
74-
"timestamp": "2021-11-05T05:54:10.920Z",
75-
"message": "Hi! I'm error log example",
76-
"level": "error"
77-
}
78-
{
79-
"timestamp": "2021-11-05T05:54:10.920Z",
80-
"message": "Hi! I'm verbose log example",
81-
"level": "verbose",
82-
"label": "database"
83-
}
84-
{
85-
"timestamp": "2021-11-05T05:54:10.920Z",
86-
"message": "{\n \"some\": \"object\"\n}",
87-
"level": "debug"
88-
}
89-
```
90-
91-
## Environment Variables
92-
93-
`NODE_ENV` production start does not show debug() logs
94-
95-
## FAQ
96-
97-
#### How does it implement NestJS Logger without any framework libs?
98-
99-
We made logger based on [LoggerService](https://github.com/nestjs/nest/blob/master/packages/common/services/logger.service.ts) but we don't explicitly import it so that we stay dependless of NestJS libraries. But you can also use the Logardian instead of common NestJS logger.
100-
101-
```ts
102-
// main.ts
103-
import { Logardian } from 'logardian'
104-
105-
const logger = new Logardian()
106-
107-
async function bootstrap(): Promise<void> {
108-
const app = await NestFactory.create(AppModule, { logger })
109-
110-
await app.listen(port, hostname, () =>
111-
logger.log(`Server running at ${hostname}:${port}`),
112-
)
113-
}
114-
```
115-
116-
#### How can I use logardian in my service?
117-
118-
Simply create a new logger class
119-
120-
```ts
121-
import { Logardian } from 'logardian'
122-
123-
@Injectable()
124-
export class CatService {
125-
private readonly _logger = new Logardian()
126-
}
10+
npm i --save nestjs-response-structure
12711
```
12812

129-
#### I do not see my logs with label
130-
131-
Specify labels you want to log or write `*` to log every log with label.
132-
Working in production and development mode
133-
134-
Logardian is a singleton, so it means that `configure()` works on all Logardian instances
135-
136-
```ts
137-
import { Logardian } from 'logardian'
138-
139-
const logger = new Logardian()
140-
141-
logger.configure({
142-
labels: '*' // or ['database', 'events'] or false
143-
trace: false,
144-
json: true
145-
})
146-
```
147-
148-
#### I do not want to see caller and path. How can I turn off them globally?
149-
150-
Specify 'false' on logardian config. If you specify `trace: true` in logger function trace will log in spite of config option
151-
152-
Priority of trace from high to low:
153-
154-
1. Production mode
155-
2. `logger.log('Hello', { trace: true })`
156-
3. `logger.configure({ trace: false })`
157-
158-
159-
16013
## License
16114

16215

0 commit comments

Comments
 (0)