Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/0xmalloc/c-log
a fast ,stable and thread-safe log lib(logger) for C/C++ language
https://github.com/0xmalloc/c-log
Last synced: 18 days ago
JSON representation
a fast ,stable and thread-safe log lib(logger) for C/C++ language
- Host: GitHub
- URL: https://github.com/0xmalloc/c-log
- Owner: 0xmalloc
- License: apache-2.0
- Created: 2013-07-21T12:43:27.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2018-04-08T17:13:15.000Z (over 6 years ago)
- Last Synced: 2024-07-31T22:55:03.994Z (3 months ago)
- Language: C
- Homepage:
- Size: 51.8 KB
- Stars: 248
- Watchers: 26
- Forks: 129
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## C-LOG
[![Release Version](https://img.shields.io/badge/release-1.0.0-red.svg)](https://github.com/0xmalloc/c-log/releases)## What is c-log
a fast ,stable and thread-safe log lib(logger) for C/C++ language## How to Use
you can use "sh build.sh" to build the testing application and also i suggest you to `run "./bench_test" (single_thread)to see the performance`you can use this log module by the follow guiding:
```cpp
log_init(LL_TRACE, "mysql", "./log/");
LOG_NOTICE("%s [time:%d]", "test calling log", time(NULL));
LOG_DEBUG("debug msg,only write to log when the loglevel bigger than or equal to debug [time:%d]", time(NULL));
LOG_WARN("warnning msg will be writing to the error files [time:%d]", time(NULL));
LOG_ERROR("you also can change number of output files by rewrite the macro_define.h");
```
and also you don't need to call close befor your application exit
if you insist to calling close,please use WARN_W.log_close() INFO_W.log_close() and so so.this module also provide some convenient macro, you can use it in the following scene
```cpp
int function()
{
int ret;
if()
{
ret = function_call();
MACRO_RET(ret != 0, -1);
MACRO_WARN(ret != 0, "function call failed [ret:%d]", ret);
MACRO_WARN_RET(ret != 0, -1, "function call failed [ret:%d]", ret)
}
}
```
The performance of this log module is really depend on how fast your disk is.
here is test result:case 1
Record Size: 280kb
Cost Time: 42 seconds
Data File Size: 20GB
yes. we write 20GB file in 102s,that's means we write 200MB per second.and
also this is the limitation of SATA.case 2
Record Size: 56byte
Record Write per Senconds:200,000
yes,in it's general useage,you can gain high qps from this log modulewhat will be the next?
## About Author
```javascript
var 0xmalloc = {
nickName : "zealot yin",
email : '[email protected]',
site : "http://www.cnblogs.com/Creator/"
weibo : "http://www.weibo.com/zealotyin"
}
```