第三方库使用--libzlog日志库

libzlog是一个高性能、线程安全的C语言日志库,支持多种输出方式,如文件、标准输出等。本文介绍了如何编译安装zlog,zlog的配置文件设置,以及关键函数如zlog_init()、zlog_get_category()和zlog_fini()的使用。通过配置文件可以自定义日志级别、输出位置和格式。

libzlog日志库

          zlog是一个高性能、线程安全、灵活、概念清晰的纯C日志函数库。

    特性:

            *多种输出,包括动态文件、静态文件、stdout、stderr、syslog、用户自定义输出函数

            *运行时手动或自动刷新配置

            *用户自定义等级

            *多线程和多进程环境下保证安全转档

            *精确到微妙

编译和安装zlog

        链接:https://pan.baidu.com/s/1QAX8B-BQuwbYx5vXBnhnqA 密码:6zt9

        $ tar -zxvf zlog-latest-stable.tar.gz
        $ cd zlog-1.2.*/
        $ make
        $ sudo make install
        or

        $ sudo make PREFIX=/usr/local/ install

PREFIX指明了安装的路径,安转完之后为了让你的程序能找到zlog动态库

        $ sudo vi /etc/ld.so.conf
        /usr/local/lib

        $ sudo ldconfig

zlog帮助文档下载

逐行解析接下来这个脚本#!/bin/bash set -e build_from_source() { current_dir=$(pwd) echo "build cnwgstore ..." cmake3 -B cnwgstore/build cnwgstore cd cnwgstore/build make clean make -j $(nproc) install cd $current_dir echo "build cnwg ..." cmake3 -B build . cd build make clean make -j $(nproc) install cd $current_dir echo "build gui ..." export LIBRARY_PATH=$current_dir/cnwgstore/lib64 export CPATH=$current_dir/cnwgstore/include cd gui/chunk/src qmake -makefile make clean make -j $(nproc) cd $current_dir echo "build emsctrl ..." cd emsctrl/src rm -rf build dist pyinstaller emsctrl.py cd $current_dir echo "build timingctrl ..." cd timingCtrl/src rm -rf build dist pyinstaller timingctrl.py cd $current_dir echo "build consctrl ..." cd consctrl/src rm -rf build dist pyinstaller consctrl.py cd $current_dir echo "build demandcalculate ..." cd demandcalculate rm -rf build dist pyinstaller src/demandcalculate.py cd $current_dir } dump_version() { cat > $1/version.txt << EOF cnwg pack ver `date +%Y%m%d` cnwge $($1/bin/cnwge -v | head -n 1) $(md5sum -b $1/bin/cnwge | cut -d ' ' -f 1) ems $($1/bin/ems -v | head -n 1) $(md5sum -b $1/bin/ems | cut -d ' ' -f 1) mqttcom $($1/bin/mqttcom -v | head -n 1) $(md5sum -b $1/bin/mqttcom | cut -d ' ' -f 1) regid $($1/bin/regied -v | head -n 1) $(md5sum -b $1/bin/regied | cut -d ' ' -f 1) slog $($1/bin/slog -v | head -n 1) $(md5sum -b $1/bin/slog | cut -d ' ' -f 1) conn104 $($1/bin/conn104 -v | head -n 1) $(md5sum -b $1/bin/conn104 | cut -d ' ' -f 1) gui $($1/bin/gui -v | head -n 1) $(md5sum -b $1/bin/gui | cut -d ' ' -f 1) modbuscom $($1/bin/modbuscom -v | head -n 1) $(md5sum -b $1/bin/modbuscom | cut -d ' ' -f 1) modbustcp $($1/bin/modbustcp -v | head -n 1) $(md5sum -b $1/bin/modbustcp | cut -d ' ' -f 1) modbustime $($1/bin/modbustime -v | head -n 1) $(md5sum -b $1/bin/modbustime | cut -d ' ' -f 1) islandctrl $($1/bin/islandctrl -v | head -n 1) $(md5sum -b $1/bin/islandctrl | cut -d ' ' -f 1) virwhm $($1/bin/virwhm -v | head -n 1) $(md5sum -b $1/bin/virwhm | cut -d ' ' -f 1) cancom $($1/bin/cancom -v | head -n 1) $(md5sum -b $1/bin/cancom | cut -d ' ' -f 1) $(basename $(readlink -f /usr/local/lib64/libmagicboxapi.so)) $(md5sum -b /usr/local/lib64/libmagicboxapi.so | cut -d ' ' -f 1) $(basename $(readlink -f cnwgstore/lib64/libcnwgstore.so)) $(md5sum -b cnwgstore/lib64/libcnwgstore.so | cut -d ' ' -f 1) $(basename $(readlink -f /usr/local/lib64/libzlog.so)) $(md5sum -b /usr/local/lib64/libzlog.so | cut -d ' ' -f 1) EOF } package() { TEMPDIR=$(mktemp -d) CNWG_BASE=$TEMPDIR/cnwg cp -r deploy $CNWG_BASE # todo start install bin/* $CNWG_BASE/bin install gui/chunk/bin/gui $CNWG_BASE/bin/gui /usr/bin/cp -rf emsctrl/src/dist/emsctrl/base_library.zip \ emsctrl/src/dist/emsctrl/lib-dynload \ emsctrl/src/dist/emsctrl/libpython3.6m.so.1.0 \ $CNWG_BASE/bin/ install emsctrl/src/dist/emsctrl/emsctrl $CNWG_BASE/bin install timingCtrl/src/dist/timingctrl/timingctrl $CNWG_BASE/bin install consctrl/src/dist/consctrl/consctrl $CNWG_BASE/bin install demandcalculate/dist/demandcalculate/demandcalculate $CNWG_BASE/bin cp -f islandctrl/conf/island_config.ini $CNWG_BASE/conf/island_config.ini.tpl cp -f conn104/conf/conn104.json $CNWG_BASE/conf/conn104.json.tpl cp -f virwhm/conf/virwhm.ini $CNWG_BASE/conf/virwhm.ini.tpl cp $(readlink -f cnwgstore/lib64/libcnwgstore.so) $CNWG_BASE/lib/ install cnwgstore/bin/cnwgviewer $CNWG_BASE/bin cp $(readlink -f /usr/local/lib64/libmagicboxapi.so) $CNWG_BASE/lib/ cp $(readlink -f /usr/local/lib64/libzlog.so) $CNWG_BASE/lib/ svn export https://192.168.12.82:8443/svn/icd/icd模板/V2.1 --force $CNWG_BASE/data/template svn export https://192.168.12.82:8443/svn/icd/json模板/V2.1 --force $CNWG_BASE/data/json dump_version $CNWG_BASE # todo end current_dir=$(pwd) cd $TEMPDIR zip -r $current_dir/cnwg.zip cnwg cd $current_dir rm -rf $TEMPDIR } rm -f cnwg.zip while getopts f opt do case "${opt}" in f) echo "build from source" build_from_source ;; esac done package
最新发布
06-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值