上篇博文已經分別介紹了如何搭建
ssh開發環境以及對
ssh三個框架的整合。整合完成之後,我們基本上就可以正常的開始乙個基於
ssh框架開發的專案了。本篇博文介紹的資源分類和日誌管理都是一些錦上添花的配置。利用這些,來清晰我們的思路,便利我們的程式設計。
先來說說資源分類吧。這裡的資源分類是指對專案中**或者配置檔案等的乙個分類管理。以下截圖中的分類只是參考,主要是對於資源分類管理思想上的重視。我們要知道,乙個結構清晰,骨架簡潔的專案是極其方便團隊開發,同時也可加快新人或者他人對該項目的理解。
再來說說日誌管理,一般稍大型的專案都會加入日誌管理。日誌模組基本是乙個必不可少的部分,它對除錯,記錄執行,問題定位都起到很重要的作用。我們常見的日誌工具有很多:
sf4j
、commons
-logging
、log4j
、jdk
自帶logging
等。這些日誌框架的常用功能和使用方式都是大體相同的。在這裡我想要格外說的就是
sf4j
,它不同於
log4j
或者logging
等日誌工具。sf4j是乙個管理日誌工具的工具。加入它是為了應對專案中日誌框架的變化,例如開始使用的
log4j
,但是後期因為某種原因想要更換為
commons-logging
,如果使用了
sf4j
,開發人員只需要呼叫
slf4j
即可,然後
slf4j
根據開發人員加入的不同的
jar包,來呼叫相應的日誌工具。
當前專案中我們使用的日誌工具就是
sf4j
和log4j
,下圖是使用
log4j
我們需要加入的
jar包:
log4j由三個重要的元件構成:日誌資訊的優先順序,日誌資訊的輸出目的地,日誌資訊的輸出格式。日誌資訊的優先順序從高到低有
fatal、e
rror、warn、info、debug,分別用來指定這條日誌資訊的重要程度;日誌資訊的輸出目的地指定了日誌將列印到控制台還是檔案中;而輸出格式則控制了日誌資訊的顯示內容。
其中日誌資訊的優先級別fatal
、error、warn、info、debug分別代表:嚴重錯誤、錯誤、警告、一般資訊、除錯資訊。
關於日誌級別的設定,在log4j.properties檔案中:
### direct logmessages to stdout ###
### direct messagesto file hibernate.log ###
### set log levels -for more verbose logging change 'info' to 'debug' ###
log4j.rootlogger=error,stdout
#log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug
log4j.logger.cn.itcast.oa=debug
log4j.rootlogger=error,stdout
通過在這裡定義的級別,您可以控制到應用程式中相應級別的日誌資訊的開關。比如在這裡定義了info級別,則應用程式中所有debug級別的日誌資訊將不被列印出來。
log4j.logger.cn.itcast.oa=debug
則是單獨設定某個專案中的某個包的日誌級別。
加入jar包和配置檔案,我們就可以使用日誌管理我們的專案了。下面就是我對加入日誌的乙個測試。測試類**:
package cn.itcast.oa.test;
import org.apache.commons.logging.log;
import org.apache.commons.logging.logfactory;
import org.junit.test;
public class logtest
}
當我們在
log4j.properties
配置檔案中設定不同的日誌級別時,控制台列印的資訊應該也是不盡相同。先看日誌級別為
debug
:
log4j.rootlogger=debug,stdout
debug
是最低級別,應該比它級別高的日誌都應該被列印出來。顯示結果為:
再對比看一下,設定日誌級別為
error
。比它低的日誌級別資訊應該是不能被列印出來的。
log4j.rootlogger=error,stdout
顯示結果為:
至此,關於資源分類和日誌管理,我們有了乙個最基礎的了解,具體深入的使用還需要繼續在專案中摸索學習。
EC 學習筆記 三 資源管理
條款13 以物件管理資源 資源包括 動態分配記憶體 檔案描述符 網路socket 互斥鎖 資料庫連線 把資源放進物件內,可以依賴c 的 析構函式自動呼叫機制 確保資源被釋放 智慧型指標 是乙個 類指標 物件,引用計數型指標,當引用物件數為0時,自動刪除該資源 std shared ptrpclass...
基於FPGA的卷積神經網路實現(三)資源分配(1)
目錄 簡介框架 資源分配 1 資源分配 2 資料量化 1 資料量化 2 資料讀寫 卷積模組 池化 全連線與輸出 前面曾經說過這個demo使用最簡單的方法,也就是對每一層都單獨分配資源,所以需要提前設計好每一層所分配的資源數量。這裡的資源主要是指dsp單元和片上儲存資源,cnn的卷積層是計算密集型層,...
第三章 工具和資源
第三章 工具和資源 技巧33 熟悉ping實用工具 1 ping 得名於潛艇聲吶的發生,沒有相關的知名埠 把自己的程序id放在identifier欄位中,便於區分屬於自己的響應,相當於埠號的作用 rtt波動意味著網路負載的變化 技巧34 學習使用tcpdump或類似的工具 1 使用 不帶引數,抓取並...