log 4 j--カスタムログ出力クラスをデータベースに


log4j.xml常用出力フォーマット:
-X番号:X情報出力時に左揃え;%p:ログ情報レベル%d{}:ログ情報生成時間%c:ログ情報所在地(クラス名)%m:生成ログ詳細%n:出力ログ情報改行
 
一、コードの中で以下の方法でlogオブジェクトを取得し、以下の方法の中でlogSourceの値は:
OperateLog.com.sq.ogcrpc.Services.127.0.0.1.admin
final public static Logger getLog(String logSource){    
//LOG 4 Jにかかわらず、テストを受けた.XMLにはいくつのloggerラベルが定義されており、logSource文字列には里ラベルのNAME属性が含まれていれば、その出力器が見つかります.  return Logger.getLogger(logSource);   
 }
 
カスタムログ出力クラスを呼び出す.log 4 j.xmlでのLOGの定義
<appender name="operateLogAppender" class="test.log4j.OperateLogAppender">   
            <priority value="info"/>
            <param name="dataSourceProvider" value="test.log4j.SpringDataSourceProviderImpl" />   
            <layout class="org.apache.log4j.PatternLayout">   
                <param name="ConversionPattern" value="INSERT INTO SYS_OPTLOG (id, name, ip, ldate, tt, yy, 
ll) values (id.nextval,'%c{1}',substr('%c{5}',1,length('%c{5}')-length('%c{1}')-1),to_date('%d{yyyy-MM-dd 
HH:mm:ss}','yyyy-mm-dd hh24:mi:ss'),'%m','%p','%c'" />   
            </layout>    
 </appender> 

<logger name="OperateLog" additivity="false">   
            <level value="info" />   
            <appender-ref ref="operateLogAppender" />              
</logger> 

 
 
 
XMLファイルを解析します.カスタムOperateLogAppenderクラスを呼び出してJDBCappenderを継承し、親クラスを再ロードする3つの方法:getConnection()、closeConnection、executeクラスexecuteでSQL挿入データをデータベースに実行