🦒 Beautiful Logger for Node.js
The best alternative to the console.log statement
🎁 Support: Donate
This project is free, open source and I try to provide excellent free support. Why donate? I work on this project several hours in my spare time and try to keep it up to date and working. THANK YOU!
📎 Menu
-
💡 Features -
👔 Screenshot -
🚀 How to use -
📚 Documentation -
-
🧰 Options
-
-
-
🔌 Methods
-
-
-
🎨 Palette
-
-
-
🤹♂️ LogRotate
-
-
👨💻 Contributing -
🐛 Known Bugs -
🍻 Community:
💡 Features
- [
✔️ ] Easy to use - [
✔️ ] MIT License - [
✔️ ] Palette (🎨 Customize colors) - [
✔️ ] Logrotate🤹♂️ - [
✔️ ] Typescript support - [
✔️ ] The best alternative to the console.log statement - [
✔️ ] Write stdout logs to file (supported format: text/log and json) - [
✔️ ] The JSON logs format is compatible with pinojs - [
✔️ ] Translations:🇬🇧 🇮🇹 🇵🇱 🇪🇸 🇵🇹 🇷🇺 🇩🇪 🇫🇷 (Help me❤️ )
👔 Screenshot
🚀 Installation
- In your node project run:
npm install @ptkdev/logger --save
- Usage:
const Logger = require("@ptkdev/logger");
const logger = new Logger();
logger.info("message");
You can set options
to new Logger(options);
example:
const Logger = require("@ptkdev/logger");
const options = {
language: "en",
colors: true,
debug: true,
info: true,
warning: true,
error: true,
sponsor: true,
write: true,
type: "log",
rotate: {
size: "10M",
encoding: "utf8",
},
path: {
// remember: add string *.log to .gitignore
debug_log: "./debug.log",
error_log: "./errors.log",
},
};
const logger = new Logger(options);
logger.info("message");
See folder examples
, run with node example.js
. Below is available a description of options
values.
🧰 Options
Parameter | Description | Values | Default value | Available since |
---|---|---|---|---|
language | Set language of log type | en / it / pl / es / pt / de / ru / fr | en | v1.0.0 |
colors | Enable colors in terminal | true / enabled / false / disabled | true | v1.0.0 |
debug | Enable all logs with method debug | true / enabled / false / disabled | true | v1.0.0 |
info | Enable all logs with method info | true / enabled / false / disabled | true | v1.0.0 |
warning | Enable all logs with method warning | true / enabled / false / disabled | true | v1.0.0 |
error | Enable all logs with method errors | true / enabled / false / disabled | true | v1.0.0 |
sponsor | Enable all logs with method sponsor | true / enabled / false / disabled | true | v1.0.0 |
write | Write the logs into a file, you need set path values | true / enabled / false / disabled | false | v1.0.0 |
type | Format of logs in files | log / json | log | v1.0.0 |
rotate | Rotates the log files when size exceeds this value |
10B / 10K / 10M / 10G
|
"rotate": {"size": "10M"} |
v1.5.0 |
palette | Change palette with hexcode colors | Object | default palette | v1.5.0 |
path | If write is true, the library writes the logs to a path | Object | {"debug_log": "./debug.log", "error_log": "./errors.log"} |
v1.0.0 |
🔌 Methods
Method | Description | Parameters |
---|---|---|
debug(message , tag ) |
message : Display debug log message tag : prefix of message |
message : string (mandatory) tag : string (optional) |
info(message , tag ) |
message : Display info log message tag : prefix of message |
message : string (mandatory) tag : string (optional) |
warning(message , tag ) |
message : Display warning log message tag : prefix of message |
message : string (mandatory) tag : string (optional) |
error(message , tag ) |
message : Display errors log message tag : prefix of message |
message : string (mandatory) tag : string (optional) |
sponsor(message , tag ) |
message : Display sponsor log message tag : prefix of message |
message : string (mandatory) tag : string (optional) |
stackoverflow(message , tag , error_string ) |
message : Display stackoverflow log message tag : prefix of message error_string : query for stackoverflow, if empty we use message param |
message : string (mandatory) tag : string (optional) error_string : string (optional) |
docs(message , url , tag ) |
message : Display docs log message url : link of documentation tag : prefix of message |
message : string (mandatory) url : string (optional) tag : string (optional) |
🎨 Palette
You can customize palette colors with Object palette
and with hexcode values.
-
label
is text on left (INFORMATION / ERROR / DOCS, etc..) -
text
is message of log on right -
background
is background color on left side
{
...
"palette": {
"info": { // method name
"label": "#ffffff", // label on left
"text": "#4CAF50", // log message
"background": "#4CAF50" // background
},
"warning": {
"label": "#ffffff",
"text": "#FF9800",
"background": "#FF9800"
},
"error": {
"label": "#ffffff",
"text": "#FF5252",
"background": "#FF5252"
},
"stackoverflow": {
"label": "#ffffff",
"text": "#9C27B0",
"background": "#9C27B0"
},
"docs": {
"label": "#ffffff",
"text": "#FF4081",
"background": "#FF4081"
},
"debug": {
"label": "#ffffff",
"text": "#1976D2",
"background": "#1976D2"
},
"sponsor": {
"label": "#ffffff",
"text": "#607D8B",
"background": "#607D8B"
},
"time": {
"label": "#ffffff",
"background": "#795548"
}
}
...
}
See folder examples
, run with node example.js
.
🤹♂️ LogRotate
Rotates the file when size exceeds 10 megabytes (optional, default 10M - values: 10B (byte) / 10K (kilobyte)/ 10M (megabyte)/ 10G (gigabyte))
...
"rotate": {
"size": "10M",
"encoding": "utf8"
},
...
📚 Documentation
Run npm run docs
👑 Sponsors
Support this project by becoming a sponsor.
🦄 Backers
Thank you to all our backers!
👨💻 Contributing
I .all-contributorsrc
and package.json
file.
Thanks goes to these wonderful people (emoji key):
Patryk Rzucidło |
Ilua Chubarov |
Bruno Kümmel |
Alina Osv |
Sylvain Téchené |
Giovanni Cardamone |
💰 In the future, if the donations allow it, I would like to share some of the success with those who helped me the most. For me open source is share of code, share development knowledges and share donations!
📲 Tools
🐍 Sorry for snake_case
I love snake_case syntax sorry for this
💫 License
- Code and Contributions have MIT License
- Images and logos have CC BY-NC 4.0 License (Freepik Premium License)
- Documentations and Translations have CC BY 4.0 License