AC记录库为高性能和丰富的功能集建立。
한국어| 简体中文
关键功能|构建和安装|基本用法|贡献
Stampless具有许多功能,可以使C快速轻松地登录:
该库的主要目标是为各种日志目标提供一致的记录接口。这意味着您可以专注于定义事件以及您希望它们去的地方,而无需找到其他SDK或添加守护程序和插件以将它们带到所需的位置。 Stumpless可以写日志:
看不到你需要什么吗?在您的请求中创建一个问题,我们将其纳入路线图!
Stumpless仅需要CMAKE和CMAKE支持的构建工具链(例如GCC或Visual Studio)才能构建。
# cloning the latest version of the source tree
git clone [email protected]:goatshriek/stumpless.git
# creating a new build directory
mkdir build
cd build
# configuring the new build
cmake ../stumpless
# building stumpless (with 4 threads - adjust as desired)
cmake --build . --parallel 4
# install the library (you probably need sudo to do this)
sudo cmake --install .查看安装说明,以获取有关在不同环境和/或其他工具链中构建和安装Stumpless的更多详细信息。
最简单的入门方法是将stumplog函数用作标准库的syslog函数的直接替换:
// if you're used to doing this:
syslog ( LOG_INFO | LOG_USER , "My message #%d" , count );
// then you can start by changing to this:
stumplog ( LOG_INFO | LOG_USER , "My message #%d" , count );如果您尚未打开目标,则将将消息记录到平台的默认目标:在Linux上,这是/dev/log ,在Mac系统上,这将是/var/run/syslog ,在Windows计算机上,它是Windows Event Log。如果您在调用stumplog之前打开目标,甚至几个目标,则将日志发送到最近打开的目标。
如果您想要一个更短的函数调用,则可以使用stump功能将消息发送到当前目标。您也可以像printf一样使用格式指示符:
stump ( "Login attempt failure #%d for user %s" , count , username );如果您不需要格式指定符,请使用其中一个_str型号:既快速又更安全!
stump_str ( "Login failure! See structured data for info." );如果要打开特定目标而不是使用默认值,则只需打开所需的目标并开始发送消息即可。例如,登录到名为example.log的文件:
target = stumpless_open_file_target ( "example.log" );
// uses the last opened target by default
stump ( "Login attempt failure #%d for user %s" , count , username );通过网络将消息发送到Splunk或rsyslog之类的东西同样容易:
target = stumpless_open_udp4_target ( "send-to-splunk-example" ,
"mylogserver.com" ); // or use an IP
stump ( "Login attempt failure #%d for user %s" , count , username );如果您有多个目标,则可以将消息发送到这样的目标:
stumpless_add_message ( target ,
"Login attempt failure #%d for user %s" ,
count ,
username );通常在记录呼叫中直接指定严重程度级别,因此Stumpless提供了一些宏观功能,以使其详细且效率更高。例如,要登录信息的严重性,您可以执行此操作:
stump_i ( "this gets logged as an info message" );而且,如果您还要查看源文件,行号和函数名称信息,则可以使用_t ('t'用于跟踪):
stump_t ( "this includes source info" );使用这些函数具有附加的好处,即可以通过简单地定义STUMPLESS_ENABLE_UPTO或STUMPLESS_DISABLE_DOWNTO符号来在编译时删除它们。这使得可以轻松更改构建之间的记录级别,例如,具有产品和调试版本而没有其源代码差异。
// be sure to define this before stumpless.h gets included
#define STUMPLESS_ENABLE_UPTO_INFO
// ...
// this log will go through just fine
stump_i ( "I'm doing that thing you asked" );
// this debugging message is completely removed: no runtime impact whatsoever
stump_d ( "DEBUG info: %d, %d, %s" , thing_1 , thing_2 , stringy_thingy );在Stumpless/Level中查看标题,以查看严重性速记功能的完整列表,或严重性级别的示例,以查看在行动中的完整程序。
有关上述方案的更详细示例,特定目标类型的使用,如何处理更复杂的消息结构以及更多查看示例。其中包括带注释的示例代码文件以编译,运行和修改以使您开始。
注意问题还是有功能请求?只需使用其中一个模板来创建一个问题,我们将尽快做出响应。您还可以查看项目的贡献指南,以获取有关可以回馈开源社区的不同方式的更多详细信息!
如果您想实际编写一些代码或自己进行更新,请查看开发指南以获得详细的方向。根据您的经验水平和对贡献的熟悉程度,有一些选择。
第一个选择是浏览标签良好的第一期的问题列表。这些问题被选择为一小部分但有意义的工作,并包括有关完成它们的一般方法的详细信息。如果您只是想测试该项目的水或一般开源贡献,那么它们是一个很好的起点。
经验丰富的开发人员可能更喜欢查看项目上的问题以及路线图的完整列表。如果一个物品引起您的兴趣,请在现有问题上发表评论,或者如果尚不存在,则打开一个新问题,并说明您的意图进行工作,以便其他人知道它正在进行中。
如果您对Stumpless中没有解释的某些内容感到好奇,则可以检查存储在Docs文件夹中的文档的适当部分。存储库中的文件夹包含他们自己的读数文件,可详细说明其包含的内容以及任何其他相关信息。每个功能的文档也托管在项目网站上,C库以及其他语言绑定(例如C ++)。
Stampless还以man页的形式包括本地安装中的文档。安装库后,您可以通过运行MAN名称为标头的名称,以替换为下划线,例如man stumpless_log.h来查看文档,以查看文档,以查看记录简单字符串消息的函数的文档。
您还可以通过多种方式与项目团队和更广泛的社区联系以寻求支持。