1. log4cxx consoleappender怎麼關閉
Log4cxx是滲陵枯開放源代碼叢洞項目Apache Logging Service的子項目之一,用於為C++程序提供日誌功能,以便開發者對目標程序汪擾進行調試 和審計。本文對log4cxx的使用及配置進行介紹,並給出一個可以快速開始的實例。最後,針對日誌服務給出一些實踐方面的建...
2. linux開機在rc.local中執行程序並利用log4c記錄日誌在/var/log/下的問題
是不是開機腳本運行有問題,或者說這個程序需要再某些程序啟動後執行,你開機的時候執行早了
3. log4cxx.dll丟失怎麼辦
檢查系統日誌-->在開始-->運行-->輸入:EventVwr.msc-->回車-->打開"事件查看器".等待掃描賣漏載入日誌完畢後
分別點擊查看其下的各個項目,如果出現紅冊型色的錯誤項,就雙擊它,就能中姿爛看見具體的報錯信息了.然後根據具體的報錯信息進行相應的修復.
4. 為什麼說c++很復雜
C++的異常很神秘,相比java,它可以在寫代碼的時候就提示你,這個方法會拋異常。即便運行時拋了異常,也可以很容易定位到。但C++的異常卻不是這樣,會不會拋異常,編譯器不能告訴你。什麼時候該拋異常,自己心裡也打鼓。try catch了指定的異常是不是就完事了?還是要在後面加上catch(...){}?new失敗要不要處理異常?構造函數異常呢?析構函數能拋異常嘛?異常在一層沒捕獲,它就會層層傳遞,最終導致程序退出。如果導常了,能直接定位到出異常的地方?C++可沒有e.printStackTrace。異常還有很多值得吐的地方,到底什麼才是異常安全,有沒有權威的指導說明。雖然看了很多文章,但我還是不敢在項目里用異常。一般都直接用函數返回值。
構造函數,又有默認構造,構造,析構又還有virtual析構,各種operator。繼承有virtual繼承,多繼承。函數可以重載,可以重寫。而且居然還要程序員了解C++程序的類內存布局?!轉換居然有static_cast, dynamic_cast, reinterpret_cast,花這么大的精力去掌握這么多細節。至於c++的iostream,我記得c++ primer里有很輪碼大的章節是專門講c++的IO的,我直接跳過了,直到今天我仍然用printf,記日誌的話就用log4cxx。
再吐槽編譯出錯的信息提示,gcc有時它的提示讓人摸不著頭腦,有時少寫了一個;,或者是多寫了一個},信息提示就是一屏一屏的。至於一不小心寫錯了模板,那就更是幾屏幾屏的,N個文件出錯位置,這個時候我都要用grep幫忙。
C++沒有java那樣標準的庫, 更不要說像python之類的庫了,它的庫來源繁雜,有純C寫的,里邊全是函數指針+回調,看到吐。也有純C++技術寫出來的天書代碼。又因為平台的相關性,有些庫在LINUX下表現好,簡桐芹或者在WIN下表現好。而操作系統提供的庫又是根據平台的不同而不同。
C++寫unit test很累,我相信真正去寫過的人會有一部分贊同我的觀點。
C++崩潰,當項目有多個lib依賴的時候,如果程序崩潰了,好了,這時需要學習操作系統相關的各種知識了,甚至還要學一點匯編。
據說boost是下一代標准庫,要學好boost,就必須要看源碼,光看手冊夠嘛,肯定是不夠的,既然用了C++,就必須要深究細節。要不然編譯器報錯你都看不懂。學好boost,時間至少一年起步吧,這一年時間我用來搞定一門語言都足夠了。
要搞好C++,需要花費的精力實在是太大了。如果有更簡便的方式,為什麼要使用更復雜的方式去達到同樣攔畢的目的。
用好c++,需要心細,因為有太多細節。需要記憶力好,因為有太多細節。需要適應性強,因為要面對各種庫。需要有研究精神,因為你不得不去了解各種細節。。。。。。 不過我不打算在上面耗費太大的精力了。
5. linux中 log4cxx 的配置文件怎麼載入
你好敏猛,很簡單就能看這份資源了
第一步:請加我網路雲,沉睡之騎士
第二步:消息我你要的資源,我會免費分享給你
資源橋亂橋收集不易,先請採納,謝陪信謝
6. log4cxx怎樣日誌輸出到指定的GUI組件中
7.在6的基礎下dos窗口下繼續輸入:configure-aprutil.bat回車
8、進入D:\log4cxx_compile\apr-util\include中並找到apu.hw文件,如下圖:
9、用Notepad++打開apu.hw文件(記事本也可以)
手動修改 apr-util\include\apu.hw里的內容
#define APU_HAVE_APR_ICONV1
改為
#define APU_HAVE_APR_ICONV0
10. 使用VS2010打開 apache-log4cxx-0.10.0\projects 下的 log4cxx.ds
打開工程會提示轉換:
11、轉換好後工程如下圖:
12、將 log4cxx設置為啟動項.
13.開始編譯.log4cxx
出現
4>D:\log4cxx_compile\apache-log4cxx-0.10.0\src\main\include\log4cxx/spi/loggingevent.h(155):error C2252: 只能在命名空間敏租陸范圍內顯式實例化模板
a) 雙擊 "輸出"窗口中的錯誤型磨行, 此時會在 "代碼窗口" 中出現錯誤的位置.如下圖:
b) 選擇 LOG4CXX_LIST_DEF, 按鍵盤 F12,此時會跳轉到該宏橋頃的定義,如下圖:
7. 無法啟動此程序,因為計算機中丟失log4cxxd.dll.怎麼辦
你好
.
你以>log4cxxd.dll下載>為搜索關鍵詞>點>網路一下>第1個>點擊進去下載回來放入C:\Windows\System32下,看看是否能修復這個報錯,
還不行,先確認哪個程序用到它,把該程序卸載掉運辯,還用就重新安裝一下,
檢查系統日誌-->在開始-->運行-->輸入:EventVwr.msc-->回車-->打開"事件查看器".等待掃判指描載入日誌完畢後,分別點擊查看其下的各個項旁沖缺目,如果出現紅色的錯誤項,就雙擊它,就能看見具體的報錯信息了.然後根據具體的報錯信息進行相應的修復.
祝順利,如有幫助,還望及時採納,
8. 多線程文件寫同一個文件寫不進去
這可能是由於多線程同時訪問同一個文件導致的寫入沖突問題。為了避免這個問題,您可以滾滾使用一些常見的解決方案:
1. 使用文件鎖定:在每次寫文件時請求文件鎖定,確保同一時間只有一個線程可以寫入數據。
2. 對寫操作進行序列化:通過將寫操作集中到一個線程中,避免多個線程同時寫入同一個文件,從而避免沖突。
3. 確保寫操作的原子性:使用特殊的寫操作來確保所有的寫入都是不可分割的,以避免出現沖突。
4. 使用專門的文件寫入工具:使用專門的文件寫入工具,例如 log4cxx,它可以處理多線程寫入同一個文件的情況,並且能夠保證性能和正確性。
總之,為了避免多線程寫同一個文件導致的沖突問題,您需要選擇適當的解決方案,根據具體情況大世余進行調整和返茄優化。
9. RedHat安裝log4cxx日誌庫的步驟
log4cxx日誌庫是一種動態庫,用於記錄c++的日誌,那麼RedHat系統下要如何安裝log4cxx日誌庫呢?下面我就給大家介紹下RedHat安裝log4cxx日誌庫的步驟,感興趣的朋友不妨來了解下吧。
首先,我得到信息,安裝這個庫一共需要三個軟體
apr-1.4.6.tar.gz
apr-util-1.4.1.tar.gz
apache-log4cxx-0.10.0.tar.gz
安裝順序是從上到下的,為什麼,因為後者的安裝依賴前者。
早旅輪我整理了一下思路,有如下幾個問陸信題:
1.安裝log4cxx庫到哪個目錄?
2.安裝好之後怎麼用?
我首先想到的是網上查資料,結果很多結果都顯示:
1.針對問題1,99%的都安裝在/usr/local目錄下(我的許可權是普通用戶,安裝在/usr/local目錄下需要root許可權,我頓時打了個寒戰,萬一我安裝錯了,伺服器暴了怎麼辦)
2.針對問題2,因為99%的都是安裝在/usr/local目錄鎮餘下,結果就是隨便提供一個測試程序,直接來g++ test.cpp 其他簡單參數
我想了又想,最終按照第一步做了(在此之前我向領導要了管理員許可權),安裝好後,沒什麼問題,不過,接下來,在進行寫程序測試的時候,關於log4cxx庫的文件都找不到,我崩潰了,這和網上說的不一樣啊。
步驟:
1.把三個壓縮包放置到一個你喜歡的`目錄下,比如/home/mac/log4cxx這個目錄下
2.在/home/mac/log4cxx目錄下解壓三個壓縮包得到三個文件夾(解壓縮命令tar zxvf 你的目標)
3.在/home/mac/log4cxx目錄下新建三個文件夾apr apr-util log4cxx作為三個包的安裝目錄(執行make install時的安裝目錄)
4.首先進入apr-1.4.6目錄執行。/configure --prefix=/home/mac/log4cxx/apr配置apr包的安裝目錄為/home/mac/log4cxx/apr
5.執行make
6.執行make install
7.進入apr-util-1.4.1目錄執行。/configure --prefix=/home/mac/log4cxx/apr-util --with-apr=/home/mac/log4cxx/apr意義和上面一步一樣,不過多了個依賴關系
8.執行make
9.執行make install
10.進入apache-log4cxx-0.10.0目錄執行。/configure --prefix=/home/mac/log4cxx/log4cxx --with-apr=/home/mac/log4cxx/apr --with-apr-util=/home/mac/log4cxx/apr-util意義和上面一步一樣,依賴關系又體現了
11.執行make
12.執行make install
13.此時使用命令ls 瀏覽新建的三個文件夾apr apr-util log4cxx,會發現裡面有一些include啊,lib啊之類的文件夾
14.因為測試程序要用到log4cxx的庫文件,所以還需要一步。執行vi /home/mac/.bashrc 在裡面添加兩句
LD_LIBRARY_PATH=/home/mac/log4cxx/log4cxx/lib
export LD_LIBRARY_PATH 然後保存
15.執行source /home/mac/.bashrc使剛剛做的變動生效
16.編寫一個測試程序main.cpp
#include #include #include int main(int argc, char* argv[]) { using namespace log4cxx; // 讀取配置文件 PropertyConfigurator::configure(「conf.log」); // 建立兩個logger LoggerPtr logger1 = Logger::getLogger(「TraceYourMama」); LoggerPtr logger2 = Logger::getLogger(「Patch」); LOG4CXX_TRACE(logger1, 「跟蹤」); LOG4CXX_WARN(logger1, 「警告」); LOG4CXX_DEBUG(logger1, 「調試」); LOG4CXX_ASSERT(logger1, false, 「斷言」); LOG4CXX_FATAL(logger1, 「致命」); LOG4CXX_TRACE(logger2, 「跟蹤」); LOG4CXX_ERROR(logger2, 「錯誤」); return 0;}
17.編寫文件conf.log這個log4cxx配置文件
log4j.rootLogger=TRACE, stdout,logfilelog4j.appender.stdout=org.apache.log4j.Console
Appenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appe
nder.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %mnlog4j.app ender.l ogfile=
org.apache.log4j.RollingFileAppenderlog4j.appender.logfile.File=。
/ZW.loglog4j.appender.logfile.MaxFileSize=100KBlog4j.appender.logfile.MaxBackupIndex=
10log4j.appender.logfile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logfile.layout.
ConversionPattern=%d [%t] %-5p %c - %m%
18.執行g++ -I/home/mac/log4cxx/log4cxx/include -L/home/mac/log4cxx/log4cxx/lib -llog4cxx main.cpp
19.會生成a.out文件
20.執行。/a.out 終端輸出
2014-07-21 23:14:06,735 [0xb7fe4700] TRACE TraceYourMama - trace2014-07-21 23:14:06,736 [0xb7fe4700] WARNTraceYourMama - warn2014-07-21 23:14:06,736 [0xb7fe4700] DEBUG TraceYourMama - debug2014-07-21 23:14:06,736 [0xb7fe4700] ERROR TraceYourMama - assert2014-07-21 23:14:06,736 [0xb7fe4700] FATAL TraceYourMama - fatal2014-07-21 23:14:06,736 [0xb7fe4700] TRACE Patch - trace2014-07-21 23:14:06,736 [0xb7fe4700] ERROR Patch - error
同時,當前目錄下也會有後綴名為log的文件產生
再來從頭回答那兩個問題
1.隨你安裝在哪個目錄,是要gcc的時候指定好正確路徑就行了
2.還是gcc的 -I -L -i的參數運用值得深究
好了,到目前為止,終於讓這個庫起作用了,下一步就是分析如何配置這個庫。
上面就是RedHat安裝log4cxx日誌庫的介紹了,本文只介紹了log4cxx日誌庫的安裝方法,安裝後要記得配置後再使用。
10. log4cpp,log4cplus,log4cxx這幾個包之間是什麼關系
Log4cxx需要依賴於APR。
Log4cpp較log4c移植性稍差些。
Log4c基本上都是一些純c的東西,移植性比其他二者都要好
log4cplus: 簡潔, 下載的包編譯順利, 測試例子也能順利運行。
log4cxx: 臃腫, 需要引用apr(Apache Portable Runtime), 最痛苦的是老是編譯不了。
log4cpp: 落後, 最後更新於2007年,而且下載的包不完整。