https://github.com/ibnumardini/logn
A simple go library - Log management for Go
https://github.com/ibnumardini/logn
go go-libray log logn
Last synced: 7 months ago
JSON representation
A simple go library - Log management for Go
- Host: GitHub
- URL: https://github.com/ibnumardini/logn
- Owner: ibnumardini
- License: mit
- Created: 2020-11-12T03:14:35.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-08T13:16:22.000Z (over 3 years ago)
- Last Synced: 2024-06-20T17:43:32.040Z (about 2 years ago)
- Topics: go, go-libray, log, logn
- Language: Go
- Homepage:
- Size: 71.3 KB
- Stars: 10
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README


## About Logn
Logn :/logen/ is a simple log management library for go app ツ, with several features provided such as :
- Generate log by day
- Generate log by type
- Report log type Warning / Error to telegram via bot
- Zipping log data every one month
- Deleting old log directory
## Logn Tree
```bash
go-app
│ main
│
├───log
│ └───2020
│ └───12
│ ├───01
│ │ info.log
│ │ warning.log
│ │ error.log
│ ├───02
│ │ info.log
│ │ warning.log
│ │ error.log
│
└───log_zip
├───2019
│ log_12_2019.zip
├───2020
│ log_01_2020.zip
```
## Installation
Use the package manager [go get](https://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies) to install this package.
```bash
go get -u github.com/ibnumardini/logn
```
## Configuration
- make config file [`logn_config.json`](https://github.com/ibnumardini/logn/blob/master/logn_config_sample.json) in your root project directory
```json
{
"logn_is_active": true,
"log": {
"logn_dir": "log/",
"logn_default_loc": "Asia/Jakarta",
"logn_print_console": true
},
"tg": {
"logn_tg_send": false,
"logn_app_name": "Logn-App LOG",
"logn_tg_token": "1416xxxxx:AAF3VOBjt7rIeO4tUL_dHxG0qxxxxxxxxx",
"logn_tg_chat_id": "-4947xxxxx"
},
"zip": {
"logn_is_zipped": false,
"logn_dir_zip": "log_zip/",
"logn_del_old_dir": false
}
}
```
### Config description
- `logn_is_active` used to actived or deactived logn package
#### log
- `logn_dir` used for set default log directory name
- `logn_default_loc` used for set default timezone
- `logn_print_console` used to print log at console
#### telegram
- `logn_tg_send` used to actived or deactived report warning/error log to telegram
- `logn_app_name` used to set title in report telegram message
- `logn_tg_token` used for telegram bot token
- `logn_tg_chat_id` used for set where bot send report message
#### zip
- `logn_is_zipped` used to actived or deactived automate zipped log in one month
- `logn_dir_zip` used for set default log zip directory name
- `logn_del_old_dir` used to set automate deleting old zip directory after zipped
## Usage
```go
logn.InfoLog("hello world")
logn.WarningLog(fmt.Sprintf("%s\n", warningInfo))
logn.ErrorLog(fmt.Sprintln("error message!"))
```
### Usage description
- `logn.InfoLog()` used to make log type info
- `logn.WarningLog()` used to make log type warning
- `logn.ErrorLog()` used to make log type error
#### parameter
- if you have complex string, you can format first using `fmt.Sprintf()` or `fmt.Sprintln()` before input in the parameters
### Zipping log using cron
- set `logn.CronZip(1)`at your init func
- set like this `./app logn_zip_run` when run your app
#### parameter
- fill in the parameter with the position of the argument according to what you set, param type is int
## Contributing
Let's build this Logn library to make it even better, see contributing guide [here](CONTRIBUTING.md)
## License
Logn is under the [MIT License](LICENSE.md)