OpenJPA配置日誌

OpenJPA最值得關注的特性就是它貫穿了插件(Plugin)的思想,這使得OpenJPA的擴展性更強。對於日誌的配置,OpenJPA不僅有其自己的實現,也有Log4J、Apache Commons Logging和自定義的日誌處理。
OpenJPA中配置日誌的屬性如下所示。
(1)屬性名:openjpa.Log 
    描述:配置日誌屬性,對應配置的API爲 org.apache.openjpa.conf.OpenJPAConfiguration. getLog。
    可選值:
        — openjpa:OpenJPA默認的日誌實現。
        — commons:Apache Commons Logging日誌實現。
        — log4j:Log4J的日誌實現。
        — none:禁用日誌。
    示例:禁用日誌
    <property name=" openjpa.Log " value="none "/>
(2)日誌類別 
    同Hibernate的日誌處理相似,OpenJPA也將日誌的信息進行了分類,這些類別如表14-4所示。
    表14-4 OpenJPA實現日誌類別
   

屬性名 描    述
openjpa.Tool 由OpenJPA命令行工具、Ant工具輸出的信息
openjpa.Enhance 由OpenJPA的強化機制,在轉換類時輸出的信息
openjpa.MetaData 生成OR映射時輸出的信息
openjpa.Runtime 運行時輸出的信息
openjpa.Query 執行查詢時輸出的信息
openjpa.DataCache 使用緩存時輸出的信息
openjpa.jdbc.JDBC JDBC連接數據庫時的信息
openjpa.jdbc.SQL 輸出的SQL信息

    示例:打印SQL日誌
    <property name="openjpa.Log" value="SQL=TRACE"/>
    其中,TRACE爲日誌的級別,OpenJPA的日誌級別從低到高分別是TRACE、INFO(默認)、WARN、ERROR和FATAL。
    如果要打印出格式化後的SQL,可以對屬性“openjpa.ConnectionFactoryProperties”進行配置,代碼如下:
    <property name="openjpa.Log" value="SQL=TRACE"/>
    <property name="openjpa.ConnectionFactoryProperties"
    value="PrettyPrint=true, PrettyPrintLineLength=72"/>
    其中,PrettyPrint=true表示格式化輸出SQL,PrettyPrintLineLength=72表示默認的一行爲72個字符長度。
(3)openjpa.Log的值可以由以下4部分組成,配置的每個部分用逗號分隔。 
    — File:可以指定日誌保存的文件。
    — DefaultLevel:日誌默認的級別。
    — DiagnosticContext:在所輸出的日誌前增加診斷信息。
    — <channel>:日誌類別,如表14-4所示。
    示例一:標準的日誌配置
    <property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO"/>
    示例二:標準的日誌配置和所有的SQL日誌
    <property name="openjpa.Log"
    value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE"/>
    示例三:標準的日誌配置同時保存到指定文件中
    <property name="openjpa.Log"
    value="File=/tmp/org.apache.openjpa.log,DefaultLevel=WARN,Runtime=INFO, Tool=INFO"/>
(4)配置Log4J 
    當日志使用 Log4J時,需要在log4j.properties中配置日誌,例如log4j.properties的配置如下所示。
    log4j.rootCategory=WARN, console
    log4j.category.openjpa.Tool=INFO
    log4j.category.openjpa.Runtime=INFO
    log4j.category.openjpa.Remote=WARN
    log4j.category.openjpa.DataCache=WARN
    log4j.category.openjpa.MetaData=WARN
    log4j.category.openjpa.Enhance=WARN
    log4j.category.openjpa.Query=WARN
    log4j.category.openjpa.jdbc.SQL=WARN
    log4j.category.openjpa.jdbc.JDBC=WARN
    log4j.category.openjpa.jdbc.Schema=WARN
    log4j.appender.console=org.apache.log4j.ConsoleAppender
另外,OpenJPA的日誌還可以使用JDK自帶的日誌實現和自定義的日誌,這裏不詳細介紹,請讀者參閱相關的文檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章