1. 程式人生 > >讓Log4CPLUS每個CPP記一個日誌檔案

讓Log4CPLUS每個CPP記一個日誌檔案

請尊重原創作品。轉載請保持文章完整性,並以超連結形式註明原始作者“tingsking18”和主站點地址,方便其他朋友提問和指正。

1. 寫一個頭檔案,"mylog.h",如下:

#pragma once
#include <log4cplus/logger.h>
#include <log4cplus/configurator.h>
#include <log4cplus/fileappender.h>
#include <log4cplus/consoleappender.h>
#include <log4cplus/layout.h>
#include <log4cplus/logger.h>
#include <log4cplus/ndc.h>
#include <log4cplus/helpers/loglog.h>
#include <log4cplus/helpers/threads.h>
#include <log4cplus/streams.h>
using namespace std;
using namespace log4cplus;

struct GLOG
{
    GLOG(const char  * _fname)
    { 
        string n = _fname; 
        Logger _l = (Logger::getInstance(n));
        n+= ".log";
        _l.addAppender(new RollingFileAppender(n.c_str(), 1024*10, 10));
        _l.addAppender(new  ConsoleAppender()); 
    }
};
 
#define USE_SEPARATE_LOG(fname)  static GLOG _g(fname);

#define fLog                     Logger::getInstance(__FILE__)

2. 在所有要打log的cpp檔案裡 include "mylog.h", 
   並在檔案的最前面加一句: USE_SEPARATE_LOG(__FILE__)

3. 所有打log的地方都用下面的句子打:
   LOG4CPLUS_INFO(fLog, "testtest"<<endl);

比如:
#include "stdafx.h"
#include <iostream>
#include "mylog.h"
 
USE_SEPARATE_LOG(__FILE__)

int main(int argc, _TCHAR* argv[])
{
     LOG4CPLUS_INFO(fLog, "Hello world"<<endl);
     return 0;
}


BTW:每個檔案記錄一個日誌檔案真不是什麼好辦法。

相關推薦

Log4CPLUS每個CPP一個日誌檔案

請尊重原創作品。轉載請保持文章完整性,並以超連結形式註明原始作者“tingsking18”和主站點地址,方便其他朋友提問和指正。1. 寫一個頭檔案,"mylog.h",如下:#pragma once #include <log4cplus/logger.h> #i

logback日誌的使用,每天生成一個日誌檔案,以及error和其他級別日誌的分離

springboot會自動幫我們讀取logback的配置檔案,我們實現只需要新增即可在application中配置日誌檔案的位置logging: config: classpath:conf/logback-dev.xml配置檔案的內容如下:<?xml versio

logback框架使用誤區 如何將所有包的ERROR級別日誌集中列印到一個日誌檔案

早就想寫這個事情了,起因是自己想寫一個東西,其中使用logback日誌框架記錄日誌 打算 將所有包的ERROR及以上級別日誌打到一個檔案中,各個包下的日誌打到對應包的檔案中。 起初寫的xml配置類似於這樣: <!-- 其中一個appender,

CentOS Linux系統下apache日誌檔案設定(每天單獨生成一個日誌檔案

vi /etc/httpd/conf/httpd.conf  #編輯檔案 #ErrorLog logs/error_log  #註釋此行,新增下面這行 ErrorLog "|rotatelogs /var/log/httpd/error_log%Y%m%d.log 8

一個log4j.properties配置(每天一個日誌檔案

log4j.rootCategory=WARN,stdout, hd log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j

log4j配置每天生成一個日誌檔案

本文僅記錄tomcat下配置成功的記錄,不作log4j配置的詳細使用解釋。 該配置在tomcat的logs資料夾下每天產生新的日誌檔案(DEBUG級別:log.log)(ERROR級別:error.log),然後將前一天的日誌檔案log.log和error.log的名稱

遇到一個日誌檔案變化帶來的檔案控制代碼問題

正在進行的專案中有個系統除錯日誌儲存的功能,需要儲存列印資訊。測試部反饋了一個bug:除錯日誌檔案有時候不更新。對照程式碼,專案用的程式碼和之前專案的程式碼是一樣的。感覺沒什麼問題,我自己測試沒發現有不更新的情況,但測試部已經反饋過幾次了,肯定有問題。專案deadlin

log4j配置:每天輸出一個日誌檔案(分級別)

#建議只適應四個級別,從低到高 DEBUG INFO WARN ERROR log4j.rootLogger = INFO,console,infofile,errorfile #warnfile log4j.addivity.org.apache = tru

tomcat中多個專案(web專案)共用log4j.jar的情況下,如何其各自列印各自的日誌檔案。及輸出同級別日誌資訊

問題描述: 1.專案A中有一個log4j.properties(配置為把日誌輸出到以專案名稱命名的資料夾中)  2.為了減輕tomcat負擔,把專案A的WEB-INF/lib下的所有jar檔案拷貝到tomcat下的lib中並修改catalina.properties對其載入

logback實現每個執行緒一個獨立的日誌檔案

本文介紹如何使用logback的Mapped Diagnostic Context (MDC) 和SiftingAppender實現每個執行緒一個獨立的日誌檔案。 MDC 參考手冊http://logback.qos.ch/manual/mdc.html 本文使用log

MyEclipse啟動不了 報 發生一個錯誤 日誌檔案

!SESSION 2018-06-04 09:32:14.000 -----------------------------------------------eclipse.buildId=unknownjava.version=1.7.0_45java.vendor=Or

一個ASP.Net Core配置檔案問題

  最近排查一個ASP.Net Core專案的Bug,用LogInformation()記錄一些執行日誌,本地測試日誌記錄正常,然後發到RC環境測試,結果發現死活沒有日誌資訊。   首先想到就是LogLevel設定有問題。檢查了基礎的配置檔案(appsettings.json)沒有問題,而RC環境的配置檔案

面試- 阿里-. 大資料題目- 給定a、b兩個檔案,各存放50億個url,每個url各佔64位元組,記憶體限制是4G,你找出a、b檔案共同的url?

假如每個url大小為10bytes,那麼可以估計每個檔案的大小為50G×64=320G,遠遠大於記憶體限制的4G,所以不可能將其完全載入到記憶體中處理,可以採用分治的思想來解決。   Step1:遍歷檔案a,對每個url求取hash(url)%1000,然後根據所取得的

“顯式等待的坑”一個我糾結了半年的問題。

一入UI深似海,從此穩定是路人。入UI坑這麼久以來,深受穩定性的困擾。深知顯式等待是指令碼穩定性的一大關鍵,卻奈何一直用不好,只能用著執行緒等待,慢慢的執行緒等待的問題也暴露了,最後不得以再來研究顯式等待。以前用顯式等待一直都是偶爾能等到元素,偶爾等不到元素,讓我很是困惑,最

logback不生成日誌檔案問題

記logback不生成日誌檔案問題 問題描述:在線上部署專案模組時發現這個模組不生成日誌檔案,使用的是logback 發現nohup.out檔案中輸出: SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Foun

如何tomcat不記錄catalina.out這個日誌檔案

tomcat日誌記錄配置在conf/logging.properties中 有這5類日誌 catalina,localhost,manager,admin(控制檯),host-manager 還有8個級別 其中 設定為OFF 就可以關閉該類日誌 記錄功能 開啟logging.properties 如圖就將控

web專案Log4j日誌輸出路徑配置問題 問題描述:一個web專案想在一個tomcat下執行多個例項(通過修改war包名稱的實現),然後每個例項都將日誌輸出到tomcat的logs目錄下例項名命名的文

問題描述:一個web專案想在一個tomcat下執行多個例項(通過修改war包名稱的實現),然後每個例項都將日誌輸出到tomcat的logs目錄下例項名命名的資料夾下進行區分檢視每個例項日誌,要求通過儘可能少的改動配置檔案,最好修改例項名後可以不修改log4j的配置檔案。 實現分析:一般實現上面需求,需要在修

每個函式寫一個記錄日誌的功能.

# 功能要求: 每一次呼叫函式之前, 要將函式名稱, 時間節點記錄到log的日誌中.# 所需模組:# import time## def logger(fn):# def inner(*args, **kwargs):# # fn.__name__ # 函式名字# f

log4j2 動態生成logger,每個logger一個輸出檔案

maven依賴 <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifac

題目:使用UDF函式統計出flow.dat日誌檔案當中每個網站的瀏覽次數

    一:編寫MapReduce程式清洗資料   我們需要的是統計日誌檔案中每個網站的瀏覽次數,為了方便起見,我們只取網站這一列資料。取出網站資料的這一操作就在map中進行,在reduce中無需對資料做處理。 原始碼: MyMapper類