8、Qt—Log4Qt使用小記2(每日產生文件)

前言:
開發平臺:Win10 64位
開發環境:Qt Creator 13.0.0
構建環境:Qt 5.15.2 +MSVC2019 64位
例如:上一篇文章中筆者記錄了Log4qt的編譯及配置使用,這篇文章重點寫下每天產生文件到指定文件夾中,形成模板,方便日后直接使用。


文章目錄

  • 一、準備工作
  • 二、配置文件編寫
    • 2.1 不使用logConversionPattern
    • 2.2 使用logConversionPattern
  • 三、main中使用
  • 四、參考文獻
    • 4.1 https://blog.csdn.net/qq_43371004/article/details/108162272
    • 4.2 https://blog.csdn.net/Eternity_jie/article/details/107013911
    • 4.3 https://blog.51cto.com/xiaohaiwa/5379141


一、準備工作

準備好log4qt的鏈接庫及頭文件,并將其復制到創建的工程的指定目錄中,如有不清楚的地方可以看下筆者上一篇文章https://blog.csdn.net/roujian0985/article/details/138698735。
在這里插入圖片描述在這里插入圖片描述

二、配置文件編寫

在這里插入圖片描述

2.1 不使用logConversionPattern

其實用不用logConversionPattern就是個輸出布局格式的問題,logConversionPattern具體使用看下參考文獻4.2,筆者就不多贅述了。

#設置儲存log文件的根目錄,生成的日志文件會存在Logs文件夾中
logpath=./Logslog4j.reset=true
log4j.Debug=WARN
log4j.threshold=NULL
#設置是否監聽QDebug輸出的字符串
log4j.handleQtMessages=true
#在運行中,是否監視此文件配置的變化
log4j.watchThisFile=false#第一個值:設置根Logger的輸出log等級為All,即DEBUG之上級別的都被記錄
#后面的值:設置輸出源,console,daily,如果還想文件滾動輸出再加上rolling
log4j.rootLogger=ALL,console,daily#設置Log輸出的幾種輸出源(appender.console、appender.daily、appender.rolling):上面設置幾個輸出源下面寫幾個#console:設置終端打印記錄器,和上面log4j.rootLogger的設置值console呼應
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=STDOUT_TARGET
log4j.appender.console.layout=org.apache.log4j.TTCCLayout
log4j.appender.console.layout.dateFormat=yyyy.MM.dd hh:mm:ss.zzz
log4j.appender.console.layout.contextPrinting=true
log4j.appender.console.threshold=ALL#daily:設置一個每日儲存一個log文件的記錄器,和上面log4j.rootLogger的設置值daily呼應
log4j.appender.daily=org.apache.log4j.DailyFileAppender
log4j.appender.daily.file=${logpath}/log4qt.log
log4j.appender.daily.appendFile=true
log4j.appender.daily.datePattern=_yyyy_MM_dd
log4j.appender.daily.keepDays=90
log4j.appender.daily.layout=${log4j.appender.console.layout}
log4j.appender.daily.layout.dateFormat=${log4j.appender.console.layout.dateFormat}
log4j.appender.daily.layout.contextPrinting=${log4j.appender.console.layout.contextPrinting}

2.2 使用logConversionPattern

#設置儲存log文件的根目錄,生成的日志文件會存在Logs文件夾中
logpath=./Logs
# 配置日志的輸出格式: %r耗費毫秒數 %p日志的優先級 %t線程名 %C所屬類名通常為全類名 %L代碼中的行號 %x線程相關聯的NDC %m日志 %n換行
logConversionPattern=[%d{yyyy-MM-dd HH:mm:ss.zzz}][%-5p][%-2t] >> %m %nlog4j.reset=true
log4j.Debug=WARN 
log4j.threshold=NULL #指定日志消息的輸出最低層次
#設置是否監聽QDebug輸出的字符串
log4j.handleQtMessages=true
#在運行中,是否監視此文件配置的變化
log4j.watchThisFile=false#第一個值:設置根Logger的輸出log等級為All,即DEBUG之上級別的都被記錄
#第二個值:設置輸出源,console,daily,如果還想文件滾動輸出再加上rolling
log4j.rootLogger=ALL,console,daily#設置Log輸出的幾種輸出源(appender.console、appender.daily、appender.rolling):上面設置幾個輸出源下面寫幾個
###############################################################################################
#console:設置終端打印記錄器,和上面log4j.rootLogger的設置值console呼應
log4j.appender.console=org.apache.log4j.ConsoleAppender
# 輸出
log4j.appender.console.Target = System.out  
# 配置CONSOLE設置為自定義布局模式
log4j.appender.console.layout=org.apache.log4j.PatternLayout
# 配置logfile為自定義布局模式
log4j.appender.console.layout.ConversionPattern=${logConversionPattern}
##############################################################################################################################################################################################
#daily:設置一個每日儲存一個log文件的記錄器,和上面log4j.rootLogger的設置值daily呼應
log4j.appender.daily=org.apache.log4j.DailyFileAppender
log4j.appender.daily.file=${logpath}/log4qt.log
log4j.appender.daily.appendFile=true
log4j.appender.daily.datePattern=_yyyy_MM_dd
log4j.appender.daily.keepDays=90
# 配置logfile為自定義布局模式
log4j.appender.daily.layout=org.apache.log4j.PatternLayout
log4j.appender.daily.layout.ConversionPattern=${logConversionPattern}
###############################################################################################

三、main中使用

在main函數中將配置文件引入,然后正常寫debug就可以了,會重定向系統debug(error)等操作到log4qt中。

#include "mainwindow.h"#include <QApplication>
#include <log4qt/log4qt.h>
#include <log4qt/propertyconfigurator.h>int main(int argc, char *argv[])
{QApplication a(argc, argv);Log4Qt::PropertyConfigurator::configure(a.applicationDirPath() + "/log4qt.ini");qDebug()<<"11";MainWindow w;w.show();return a.exec();
}

四、參考文獻

4.1 https://blog.csdn.net/qq_43371004/article/details/108162272

4.2 https://blog.csdn.net/Eternity_jie/article/details/107013911

4.3 https://blog.51cto.com/xiaohaiwa/5379141

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16478.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16478.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16478.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

5.1 Go 函數的定義與調用

&#x1f49d;&#x1f49d;&#x1f49d;歡迎蒞臨我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…

Spring Boot集成testcontainers快速入門Demo

1.什么是testcontainers&#xff1f; Testcontainers 是一個用于創建臨時 Docker 容器進行單元測試的 Java 庫。當我們想要避免使用實際服務器進行測試時&#xff0c;它非常有用。&#xff0c;官網介紹稱支持50多種組件。? 應用場景 數據訪問層集成測試&#xff1a; 使用My…

ubuntu20安裝Labelme

conda create --namelabelme python3 進入conda環境 source activate labelme 安裝labelme pip install labelme 遇到網絡問題 使用清華源 pip install labelme -i https://pypi.tuna.tsinghua.edu.cn/simple/ 輸入labelme 打開

Google的MLP-MIXer的復現(pytorch實現)

Google的MLP-MIXer的復現&#xff08;pytorch實現&#xff09; 該模型原論文實現用的jax框架實現&#xff0c;先貼出原論文的代碼實現&#xff1a; # Copyright 2024 Google LLC. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may …

GEC210編譯環境搭建

一、下載編譯工具鏈 下載&#xff1a;點擊跳轉 二、解壓到 /usr/local/arm 目錄 sudo mv gec210.zip /usr/local/arm cd /usr/local/arm sudo unzip gec210.zip 三、添加到環境變量 PATH/usr/local/arm/arm-cortex_a8-linux-gnueabi-4.7.3/bin:$PATH 四、測試驗證 在終端…

python數據分析-基于數據挖掘對APP評分的預測

前言 當我們談論關于APP用戶分析與電子商務之間的聯系時&#xff0c;機器學習在這兩個領域的應用變得至關重要。App用戶分析和電子商務之間存在著密切的關聯&#xff0c;因為用戶行為和偏好的深入理解對于提高用戶體驗、增加銷售以及優化產品功能至關重要。故本文基于K-近鄰模…

OFDM 802.11a的FPGA實現(二十)使用AXI-Stream FIFO進行跨時鐘(含代碼)

目錄 1.前言 2.AXI-Stream FIFO時序 3.AXI-Stream FIFO配置信息 4.時鐘控制模塊MMCM 5.ModelSim仿真 6.總結 1.前言 至此&#xff0c;通過前面的文章講解&#xff0c;對于OFDM 802.11a的發射基帶的一個完整的PPDU幀的所有處理已經全部完成&#xff0c;其結構如下圖所示&…

opencv-C++ VS2019配置安裝

最新opencv-c安裝及配置教程(VS2019 C & opencv4.4.0)_c opencv配置-CSDN博客

夜雨觸花感懷

夜雨觸花感懷 雨落有軌跡&#xff0c;業成無坦途。 ?雞毛飛虛空&#xff0c;尋德問心路。 ?恰如求耕耘&#xff0c;大話量寸土。 ?好吃品五味&#xff0c;難得評真俗。

CAN總線簡介

1. CAN總線概述 1.1 CAN定義與歷史背景 CAN&#xff0c;全稱為Controller Area Network&#xff0c;是一種基于消息廣播的串行通信協議。它最初由德國Bosch公司在1983年為汽車行業開發&#xff0c;目的是實現汽車內部電子控制單元&#xff08;ECUs&#xff09;之間的可靠通信。…

用Vuex存儲可配置下載的ip地址(用XML進行ajax請求配置文件)

1.在public文件夾下創建一個名為Configuration的文件在創建一個Configuration.txt里面就放IP地址&#xff08;這里的名字可以隨便命名一定性的被人解讀文件含義&#xff09; 例如&#xff1a; http://172.171.208.1:80032.在store文件夾中創建一個名為 ajaxModule.js 的 Vuex …

2. CSS選擇器與偽類

2.1 基本選擇器回顧 在開始介紹CSS3選擇器之前&#xff0c;我們先回顧一下CSS的基本選擇器。這些選擇器是所有CSS開發的基礎。 2.1.1 元素選擇器 元素選擇器用于選中指定類型的HTML元素。 /* 選中所有的<p>元素 */ p {color: blue; }2.1.2 類選擇器 類選擇器用于選中…

03自動輔助導航駕駛NOP其實就是NOA

蔚來NOP是什么意思&#xff1f;蔚來NOP是啥 蔚來NOP的意思就是NavigateonPilot智能輔助導航駕駛&#xff0c;也就是大家俗稱的高階輔助駕駛&#xff0c;在車主設定好導航路線&#xff0c;并且符合開啟NOP條件的前提下&#xff0c;蔚來NOP可以代替駕駛員完成從A點到B點的智能輔助…

深入理解數倉開發(二)數據技術篇之數據同步

1、數據同步 數據同步我們之前在數倉當中使用了多種工具&#xff0c;比如使用 Flume 將日志文件從服務器采集到 Kafka&#xff0c;再通過 Flume 將 Kafka 中的數據采集到 HDFS。使用 MaxWell 實時監聽 MySQL 的 binlog 日志&#xff0c;并將采集到的變更日志&#xff08;json 格…

【二叉樹】:LeetCode:100.相同的數(分治)

&#x1f381;個人主頁&#xff1a;我們的五年 &#x1f50d;系列專欄&#xff1a;初階初階結構刷題 &#x1f389;歡迎大家點贊&#x1f44d;評論&#x1f4dd;收藏?文章 1.問題描述&#xff1a; 2.問題分析&#xff1a; 二叉樹是區分結構的&#xff0c;即左右子樹是不一…

[JDK工具-6] jmap java內存映射工具

文章目錄 1. 介紹2. 主要選項3. 生成java堆轉儲快照 jmap -dump4. 顯示堆詳細信息 jmap -heap pid5. 顯示堆中對象統計信息 jmap -histo pid jmap(Memory Map for Java) 1. 介紹 位置&#xff1a;jdk\bin 作用&#xff1a; jdk安裝后會自帶一些小工具&#xff0c;jmap命令(Mem…

PySide6升級導致的Fatal Python error: could not initialize part 2問題及其解決方法

問題出現 把PySide6從6.6.1升級到6.7.1&#xff0c;結果運行程序的時候就報如下錯誤&#xff1a; Traceback (most recent call last): File "signature_bootstrap.py", line 77, in bootstrap File "signature_bootstrap.py", line 93, in find_inc…

Kafka SASL_SSL集群認證

背景 公司需要對kafka環境進行安全驗證,目前考慮到的方案有Kerberos和SSL和SASL_SSL,最終考慮到安全和功能的豐富度,我們最終選擇了SASL_SSL方案。處于知識積累的角度,記錄一下kafka SASL_SSL安裝部署的步驟。 機器規劃 目前測試環境公搭建了三臺kafka主機服務,現在將詳…

H3CNE-7-TCP和UDP協議

TCP和UDP協議 TCP&#xff1a;可靠傳輸&#xff0c;面向連接 -------- 速度慢&#xff0c;準確性高 UDP&#xff1a;不可靠傳輸&#xff0c;非面向連接 -------- 速度快&#xff0c;但準確性差 面向連接&#xff1a;如果某應用層協議的四層使用TCP端口&#xff0c;那么正式的…