一、Log4j簡介
Log4j有三個主要的元件:Loggers、Appenders、Layouts。
1、Loggers(寫Log )
被分為五個級別:DEBUG < INFO < WARN < ERROR < FATAL
只輸出級別不低於設定級別的訊息
ex:Loggers為INFO,則INFO、WARN、ERROR和FATAL都會輸出 DEBUG則不會
logger名稱階層關係
ex:名稱為"com.foo"的 logger 是名稱為"com.foo.Bar"的 logger的parent
程式中具名取得logger的方法是
Logger.getLogger(String name) //名稱相同取得的logger一定一樣,不同則產生新的
通常我們用 Logger.getLogger(myApp.class) 取得loggger,名稱為程式的class name,因此層級關係跟package層級關係吻合...
有一個最上層的root logger,root logger 一定存在的,且只能以 Logger.getRootLogger()方式取得它的參考.不能以具名方式取得.
2、Appenders(log訊息的終點(目的地))
常使用的類如下:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件)
org.apache.log4j.RollingFileAppender(文件大小到達指定size的時候產生一個新的文件)
org.apache.log4j.WriterAppender(將日誌訊息以輸出流格式發送到任意指定的地方)
如 System.out.println("Some message..."), 對Log4j 而言appenders 就是 console
配置模式:
log4j.appender.appenderName = className
log4j.appender.appenderName.Option1 = value1
…
log4j.appender.appenderName.OptionN = valueN
3、Layouts( Log訊息的格式 )
常使用的類如下:
org.apache.log4j.HTMLLayout(以HTML表格形式佈局)
org.apache.log4j.PatternLayout(可以靈活地指定佈局模式)
org.apache.log4j.SimpleLayout(包含日誌訊息的級別和訊息字符串)
org.apache.log4j.TTCCLayout(包含日誌產生的時間、執行緒、類別等訊息)
配置模式:
log4j.appender.appenderName.layout =className
log4j.appender.appenderName.layout.Option1 = value1
…
log4j.appender.appenderName.layout.OptionN = valueN
二、簡單範例
log4j.rootLogger=Info, A1, A2
# A1 is set to be a ConsoleAppender
目前分類:Java知識 (5)
- Nov 18 Tue 2014 10:12
Log4j 詳細設定
- Jul 11 Fri 2014 17:41
Checked Exception and UncheckException(Runtime Exception)
「受檢例外」(Checked Exception): 就是應被檢查的例外不論是編譯器或設計者,並且做好異常例外處理
在某些情況下例外的發生是可預期的,例如使用輸入輸出功能時,可能會由於硬體環境問題,而使得程式無法正常從硬體取得輸入或進行輸出,這種錯誤是可預期發生的。
當拋出CheckedException此類例外時應處理(try-catch)或作出轉拋(throws)。
「非受檢例外」(Unckecked exception): 代表執行時期產生的重大錯誤,並且不應該使用例外處理修復或者避開
- May 02 Fri 2014 22:41
abstract Class 和 interface的差異
- Mar 29 Sat 2014 01:31
Hibernate映射文件對應Java和SQL型態
Java 資料型態 | Hibernate 資料型態 | 標準SQL資料型態 |
byte、java.lang.Byte | byte | TINYINT |
short、java.lang.Short | short | SMALLINT |
int、java.lang.Integer | integer | INGEGER |
long、java.lang.Long | long | BIGINT |
float、java.lang.Float | float | FLOAT |
double、java.lang.Double | double | DOUBLE |
java.math.BigDecimal | big_decimal | NUMERIC |
char、java.lang.Character | character | CHAR(1) |
boolean、java.lang.Boolean | boolean | BIT |
java.lang.String | string | VARCHAR |
boolean、java.lang.Boolean | yes_no | CHAR(1)('Y'或'N') |
boolean、java.lang.Boolean | true_false | CHAR(1)('Y'或'N') |
java.util.Date、java.sql.Date | date | DATE |
java.util.Date、java.sql.Time | time | TIME |
java.util.Date、java.sql.Timestamp | timestamp | TIMESTAMP |
java.util.Calendar | calendar | TIMESTAMP |
java.util.Calendar | calendar_date | DATE |
byte[] | binary | VARBINARY、BLOB |
java.lang.String | text | CLOB |
java.io.Serializable | serializable | VARBINARY、BLOB |
java.sql.Clob | clob | CLOB |
java.sql.Blob | blob | BLOB |
java.lang.Class | class | VARCHAR |
java.util.Locale | locale | VARCHAR |
java.util.TimeZone | timezone | VARCHAR |
java.util.Currency | currency | VARCHAR |
- Mar 16 Sun 2014 01:02
Java String to int(字串轉整數)
Method 1. int intValue = Integer.valueOf("文字");
Method 2. int intValue = Integer.parseInt("文字");