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

log4cplus使用示例

1、l4jlog.h封装头文件

#pragma once#include <iostream>
#include <log4cplus/logger.h>
#include <log4cplus/loggingmacros.h>
#include <log4cplus/fileappender.h>
#include <log4cplus/layout.h>
#include <log4cplus/configurator.h>
#include <log4cplus/ndc.h>
#include <log4cplus/helpers/loglog.h>
#include <log4cplus/helpers/property.h>
#include <log4cplus/initializer.h>#define MODULE_NAME			"ConsoleApplicationDemo"
#define CONFIG_PATH_NAME	"log4cplus.properties"class BaseLog
{
public:BaseLog() { log4cplus::PropertyConfigurator::doConfigure(CONFIG_PATH_NAME); };~BaseLog() {};log4cplus::Logger GetLogger() { return log4cplus::Logger::getInstance(MODULE_NAME); }static BaseLog &GetInstance() { static BaseLog instance; return instance; }private:log4cplus::Initializer initializer_;
};#define LOG_TRACE(...)		LOG4CPLUS_TRACE_FMT(BaseLog::GetInstance().GetLogger(), __VA_ARGS__) 
#define LOG_DEBUG(...)		LOG4CPLUS_DEBUG_FMT(BaseLog::GetInstance().GetLogger(), __VA_ARGS__) 
#define LOG_INFO(...)		LOG4CPLUS_INFO_FMT(BaseLog::GetInstance().GetLogger(), __VA_ARGS__) 
#define LOG_WARN(...)		LOG4CPLUS_WARN_FMT(BaseLog::GetInstance().GetLogger(), __VA_ARGS__) 
#define LOG_ERROR(...)		LOG4CPLUS_ERROR_FMT(BaseLog::GetInstance().GetLogger(), __VA_ARGS__) 
#define LOG_FATAL(...)		LOG4CPLUS_FATAL_FMT(BaseLog::GetInstance().GetLogger(), __VA_ARGS__) 

2、ConsoleApplicationDemo.cpp文件

// ConsoleApplicationDemo.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include "l4jlog.h"int main()
{{LOG_TRACE("this is trace message.");LOG_DEBUG("this is debug message.");LOG_INFO("this is info message.");LOG_WARN("this is warn message.");LOG_ERROR("this is error message.");LOG_FATAL("this is fatal message.");LOG_DEBUG("hello, %s, timestamp:%ld", "this is debug message.", time(0));}system("pause");return 0;
}

3、日志配置文件

log4cplus.rootLogger=TRACE, STDOUT, RootAppenderlog4cplus.appender.STDOUT=log4cplus::ConsoleAppender
log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout
log4cplus.appender.STDOUT.layout.ConversionPattern=%D{%Y/%m/%d %H:%M:%S.%q} [%t] [%-5p] %c{2} [%l][%M] - %m%nlog4cplus.appender.RootAppender=log4cplus::RollingFileAppender
log4cplus.appender.RootAppender.File=logs/ConsoleApplicationDemo.log
log4cplus.appender.RootAppender.CreateDirs=true
log4cplus.appender.RootAppender.MaxFileSize=1MB
log4cplus.appender.RootAppender.MaxBackupIndex=10
log4cplus.appender.RootAppender.layout=log4cplus::PatternLayout
log4cplus.appender.RootAppender.layout.ConversionPattern=%D{%Y/%m/%d %H:%M:%S.%q} [%t] [%-5p] %c{2} [%l][%M] - %m%n

4、日志输出

2023/05/29 17:06:48.186 [22732] [TRACE] ConsoleApplicationDemo [ConsoleApplicationDemo.cpp:16][int __cdecl main(void)] - this is trace message.
2023/05/29 17:06:48.187 [22732] [DEBUG] ConsoleApplicationDemo [ConsoleApplicationDemo.cpp:17][int __cdecl main(void)] - this is debug message.
2023/05/29 17:06:48.187 [22732] [INFO ] ConsoleApplicationDemo [ConsoleApplicationDemo.cpp:18][int __cdecl main(void)] - this is info message.
2023/05/29 17:06:48.188 [22732] [WARN ] ConsoleApplicationDemo [ConsoleApplicationDemo.cpp:19][int __cdecl main(void)] - this is warn message.
2023/05/29 17:06:48.188 [22732] [ERROR] ConsoleApplicationDemo [ConsoleApplicationDemo.cpp:20][int __cdecl main(void)] - this is error message.
2023/05/29 17:06:48.189 [22732] [FATAL] ConsoleApplicationDemo [ConsoleApplicationDemo.cpp:21][int __cdecl main(void)] - this is fatal message.
2023/05/29 17:06:48.189 [22732] [DEBUG] ConsoleApplicationDemo [ConsoleApplicationDemo.cpp:23][int __cdecl main(void)] - hello, this is debug message., timestamp:1685351208
http://www.lryc.cn/news/91047.html

相关文章:

  • 人工智能学习07--pytorch20--目标检测:COCO数据集介绍+pycocotools简单使用
  • learnOpenGL-深度测试
  • 阿里云服务器数据盘是什么?系统盘和数据盘区别
  • linux常用命令精选
  • 人体行为足力特征分析及其应用研究_kaic
  • javascript基础二十七:说说 JavaScript 数字精度丢失的问题,解决方案?
  • 重塑工作场所:后疫情时代组织韧性的8个策略
  • TCP协议为什么要三次握手而不是两次?
  • 使用Vuex进行状态管理
  • 【优化调度】基于改进遗传算法的公交车调度排班优化的研究与实现(Matlab代码实现)
  • IMX6ULL裸机篇之I2C实验-硬件原理图
  • 华为OD机试真题 Java 实现【获取字符串中连续出现次数第k多的字母的次数】【2023Q1 100分】,附详细解题思路
  • 充分统计量和因子分解定理
  • M1 PD安装arm ubuntu及Docker
  • TCP协议的RST标志
  • 【软件质量与软件测试 白盒测试与黑盒测试】
  • JavaScript教程(高级)
  • C++进阶 —— 范围for(C++11新特性)
  • ELK +Filebeat日志分析系统
  • 万字解析PELT算法!
  • 腾讯云服务器端口怎么全开?教程来了
  • 深入理解Java虚拟机:JVM高级特性与最佳实践-总结-13
  • 租售keysight E8257D 50G模拟信号发生器 销售/回收
  • 【C++】什么是函数模板/类模板?
  • 为什么是ChatGPT引发了AI浪潮?
  • 批处理文件(.bat)启动redis及任何软件(同理)
  • 深度学习求解稀疏最优控制问题的并行化算法
  • 牛客网项目—开发社区首页
  • uniapp水文【uniapp】
  • Java函数式接口