当前位置: 首页 > wzjs >正文

企业建设网站意义服务器租用1元

企业建设网站意义,服务器租用1元,看广告的收益的app,东莞找工作求职招聘zlog日志库 1 简介1.1 核心特点1.2 核心概念 2 zlog日志库部署到项目工程2.1 下载zlog源码2.2 交叉编译zlog源码2.3 拷贝生成的静态库文件 3.zlog日志使用 1 简介 zlog是轻量级,高性能的C语言日志库,专为Linux/Unix系统设计(也支持Windows系统…

zlog日志库

  • 1 简介
    • 1.1 核心特点
    • 1.2 核心概念
  • 2 zlog日志库部署到项目工程
    • 2.1 下载zlog源码
    • 2.2 交叉编译zlog源码
    • 2.3 拷贝生成的静态库文件
  • 3.zlog日志使用

1 简介

  zlog是轻量级,高性能的C语言日志库,专为Linux/Unix系统设计(也支持Windows系统),适合嵌入式系统,服务器后台等对日志功能有较高需求的场景。
本文介绍zlog基本概念,交叉编译并部署到QT项目中

1.1 核心特点

特性说明
高性能异步写入、低延迟,适合高并发场景。
线程安全多线程环境下无需额外锁机制。
灵活配置通过配置文件动态控制日志格式、级别、输出目标(文件/控制台/网络等)。
日志分类支持多类别(Category)日志,便于模块化管理。
日志轮转自动按大小/时间分割日志文件,避免单个文件过大。
跨平台支持 Linux、macOS、Windows(需 MinGW 或 MSVC 适配)。

1.2 核心概念

(1)日志分类(Category)
不同模块可以使用不同的日志分类(如 network、database),每个分类可独立配置级别和输出规则。

示例:

zlog_category_t *net_cat = zlog_get_category("network");
zlog_info(net_cat, "Connection established");

(2)配置文件(zlog.conf)
定义日志格式、输出目标和规则。示例:

[formats]
simple = "%d(%ms) %-6V [%c:%F:%L] %m%n"  # 格式:时间、级别、分类、文件、行号、消息[rules]
my_cat.* "./logs/app.log", 10MB * 3 ~ "./logs/old/app.log.#r"; simple
network.DEBUG  "192.168.1.100:514;simple"  # 输出到远程 syslog 服务器

(3)日志级别
从高到低:FATAL > ERROR > WARN > NOTICE > INFO > DEBUG。

运行时可通过配置文件动态调整级别,无需重启程序。

2 zlog日志库部署到项目工程

2.1 下载zlog源码

git clone https://github.com/HardySimpson/zlog.git

2.2 交叉编译zlog源码

cd zlog
make cc={指定交叉编译器}
eg:
make cc=/workdir/anlogic/SDK_2024.10/buildroot/host/bin/aarch64-linux-gnu-gcc

  交叉编译完成之后,会在zlog/Src文件夹中生成以下文件
libzlog.a ,libzlog.so libzlog.so.1 libzlog.so.1.2
在这里插入图片描述
  查看文件属性是arm平台的格式文件在这里插入图片描述

2.3 拷贝生成的静态库文件

(1)可以在QT工程项目文件夹新建libs文件夹,并将libzlog.a静态库文件拷贝该文件夹中。
:可根据需求选择拷贝静态库文件或者动态库文件,如果考虑减小应用程序大小,可以选择拷贝.so动态库文件,但是也需要将.so动态库文件拷贝到目标机中。如果不考虑应用程序大小,对存储空间没有要求,则可以拷贝.a静态库文件
(2)修改QT工程.pro文件,指定zlog库路径

LIBS += -L$$PWD/../libs -lzlog,

3.zlog日志使用

#include <QObject>
#include <QDir>
#include <QFile>
#include <QDebug>
#include "zlog.h"//定义要写入zlog配置文件中的配置内容,配置日志格式
//以下定义两个日志的格式
#define  zlogDefaultCFG   "[formats]    \nsimple = \"Log->%d.%ms [%f-%L] %m%n\"      \n[rules]  \n*.*   >stdout;simple   \nmy_cat.* \"/home/usr/myLog/myLog.log\", 10M*1; simple  \n"//以下定义两个日志的格式
#define  zlogDefaultCFG2   "[formats]    \nsimple = \"GA02->%d.%ms [%f-%L] %m%n\"      \n[rules]  \n*.*   >stdout;simple   \nmy_cat.* \"/home/usr/myLog/myLog.log\", 10M*1; simple  \nerr_cat.* \"/home/usr/myLog/myLog2.log\", 10M*1; simple  \n"#define ZLOG_PATH "/home/usr/myLog//myLog.cfg"      /*日志初始化文件*/zlog_category_t *zc;
zlog_category_t *zc_Err;
void initZlog(void)
{QDir zlogDir("/home/usr/");if (!zlogDir.exists()){QDir zlogParentDir("/home/usr");if (!zlogParentDir.mkdir("myLog")){qDebug("mkdir false");return}}QFile zlog_config_file(ZLOG_PATH);if (!zlog_config_file.exists()){zlog_config_file.setFileName(ZLOG_PATH);if(!zlog_config_file.open(QIODevice::WriteOnly|QIODevice::Text)){qDebug("zlog config file create error");return}else if(!zlog_config_file.write(QString(zlogDefaultCFG).toLatin1().data())){qDebug("zlog config file write error");return}zlog_config_file.close();}QFile zlogCfgFile(ZLOG_PATH);if( !zlogCfgFile.exists() )qDebug("zlog config file does not exsit");int rc;rc = zlog_init(ZLOG_PATH);if (rc){qDebug("zlog init failed");return}zc = zlog_get_category("my_cat");if (!zc){zlog_fini();qDebug("get my cat failed");return}zlog_info(zc, " \n############################\r\n display process zlog init Successful ! \n############################\r\n");zc_Err = zlog_get_category("err_cat");if (!zc_Err){zlog_fini();qDebug("get err cat failed");return}zlog_info(zc_Err, " \n############################\r\n display process Error zlog init Successful ! \n############################\r\n");}

文章转载自:

http://J8K4GhHk.cnhgc.cn
http://86Rk666A.cnhgc.cn
http://3AL6z2gK.cnhgc.cn
http://glwlBljN.cnhgc.cn
http://pHzF5faG.cnhgc.cn
http://hPrDf0GR.cnhgc.cn
http://7CKXWDhA.cnhgc.cn
http://oE2jM2ky.cnhgc.cn
http://uZEv7H8e.cnhgc.cn
http://jABZOwbF.cnhgc.cn
http://D2LJbn7g.cnhgc.cn
http://xtXjsNF7.cnhgc.cn
http://Qbww9kc6.cnhgc.cn
http://LfBqN0s0.cnhgc.cn
http://TvPi8W1N.cnhgc.cn
http://4laPHY3a.cnhgc.cn
http://uVgJrhty.cnhgc.cn
http://LLir4fz4.cnhgc.cn
http://xxcjs3TW.cnhgc.cn
http://9bkNc5yO.cnhgc.cn
http://8J9gDW0R.cnhgc.cn
http://smD5gly1.cnhgc.cn
http://LDUzHkIm.cnhgc.cn
http://qfKFnfCW.cnhgc.cn
http://gnG0LGoH.cnhgc.cn
http://2EZGQiip.cnhgc.cn
http://m4udaeyj.cnhgc.cn
http://WE7PUjK8.cnhgc.cn
http://GdkVxRBY.cnhgc.cn
http://1pn8UEhD.cnhgc.cn
http://www.dtcms.com/wzjs/649890.html

相关文章:

  • 南宁公司网站建设方案宿迁市建设局投诉网站首页
  • 太原网站建设方案托管网页前端开发技术
  • 面签拍照 网站备案公司查询系统官网
  • 网站备案时核验单网站备案后 换服务器
  • 做网站总结体会北京做公司网站公司
  • 汽车销售在哪些网站做推广口碑营销的缺点
  • 淮南做网站推广天津 网站策划
  • 南昌网站建设有哪几家常州网站公司怎么选
  • 东莞销售网站设计上海网站优化
  • 建设工程项目编号在什么网站查正版素材网站
  • 通过输入域名访问自己做的网站网站备案流程
  • 简洁网站首页模板wordpress怎么修改登录地址
  • 黑客怎么入侵网站wordpress静态连接选择
  • 山东高端网站建设服务商企业管理软件排行榜前十
  • 技能培训中心网站建设规模以上工业企业的标准是什么
  • 江苏省住房和城乡建设部网站小程序小游戏
  • 网站开发需求收集一级做c爱片的网站
  • 保定外贸网站制作电子商务网站建设规划书
  • 营销型外贸网站建设软件dw 怎么做钓鱼网站
  • 新媒体网站建设方案小程序开发教程 下载
  • 学做网站推广要多久时间德阳做网站的公司
  • 花店网站开发参考文献全国网站备案拍照
  • 网站顶端flash网站排名云优化工具
  • 购物网站介绍查询公司名字是否被注册
  • wordpress固定连接文件夹北京seo学校
  • 网站设计费用志上海招聘网最新招聘
  • 网站建设认证试题如何分析网站
  • 政务网站建设步骤建好网站后最怎么维护
  • 做毛绒玩具在什么网站上找客户贵州网站中企动力建设
  • 莱芜企业网站建设公司后台网站要做权限前端还是后台做