jbossログ出力の詳細

21684 ワード

配置を最適化しないと、JBOSSの下の項目を間違えてしまうのは面倒です.JBOSS 4.2.2 GAバージョンでは、デフォルトですべてのDEBUG情報を1回負けてJBOSS、Serverを実行したばかりです.logの日志は1 Mほど悪くなくて、更にJBOSSを止めて、何事もしていないで、すべて自分で见えないLOGを生成して、1つの字で形容するしかありません:费物!
しかし、話は先にこんなに激しく言わないでください.若者は、自分の心理状態をコントロールしなければなりません.衝動は魔獣です.LOGが多すぎるのは确かに少しも役に立たないで、もともとこれらのLOGの最大の机能は间违いを调べやすいので、しかしもしN行のLOGを生成するならば、中からあなたの望むことを探し当てて、私はやはりプログラムを一回検査したほうがいいです!そのため、異なるアプリケーションの場合、あなたのLOGを配置してこそ、プロジェクトをよりスムーズに進めることができますよ!さて、本題に入りますが、本稿ではJBOSS 4のLOG 4 J構成について、その他は該当する記事を参照してください.JBOSS 4のLOG 4 J構成はデフォルトでDeployディレクトリのconf/ディレクトリの下に置く、例えば今earをjbossのdefaultディレクトリの下に置くと、log 4 jのファイルはjboss/server/default/conf/jboss-log 4 jである.xml、それを見つけて、その中の内容をもう一度分析しましょう.まず第1段、1つのFILEのappender、コードは以下のXmlコードです
  
   <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">  
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>  
      <param name="File" value="${jboss.server.log.dir}/server.log"/>  
      <param name="Append" value="false"/>  

        
      <param name="DatePattern" value="'.'yyyy-MM-dd"/>  

        

      <layout class="org.apache.log4j.PatternLayout">  
           
         <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>  

           
      layout>  
   appender>  
[xml] view plain copy
  
   <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">  
      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>  
      <param name="File" value="${jboss.server.log.dir}/server.log"/>  
      <param name="Append" value="false"/>  

        
      <param name="DatePattern" value="'.'yyyy-MM-dd"/>  

        

      <layout class="org.apache.log4j.PatternLayout">  
           
         <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>  

           
      layout>  
   appender>  

上の段落はJBOSSのデフォルト出力がlog/serverになる.logファイルの基本的な構成は、そのnameがFILEで、これは自分で決めたもので、他の場所ではこの引用nameで参照され、appenderのタイプはDailyRollingFileAppenderで、毎日新しいserverを生成することを意味します.logファイル、この時ある人は聞くことができて、どのように毎日serverです.ロゴ、じゃあ昨日のは上書きしたのではないでしょうか.心配しないでください.このようなことは開発者がとっくに考えています.その中にはいくつかのパラメータが設定されていて、自動的に前日のロゴを他の名前に変更させます.もちろんappenderのタイプはいくつかあります.本文の一番後ろに参考があります.あなたのプロジェクトの必要に応じて設定します.真ん中の最初のパラメータはlogファイルの出力アドレスです.分かりました.変更すればいいです.2番目のパラメータは、jbossを実行するときに、前のlogを上書きするかどうかを意味します.これはデバッグを開発するときに役立ちます.falseに設定すると、jbossを再実行するたびに、新しく生成されたlogが古いものを上書きします.このように探すのが便利で、自分で削除する必要もありませんが、正式に使用する場合は、必要に応じてtrueに設定することができます.これにより、すべてのログが保存され、しばらくの間、前のいずれかのロゴ情報を見つけることができますよ.いくつかのパラメータ設定ファイルが前日のlogのファイル名に変更されていることについて説明しましたが、構成の真ん中にDatePatternがあることに気づきます.これは前日のlogがどんな名前に変更されるかを設定することです.毎晩の真夜中に行われます.自動的に見てください.後ろを見てください.yyyy-MM-dd、前日のロゴのファイル名がどのように変更されるかわかります!ここでは詰め込みは行いません!それはもっとひどく表現することができて、1時間ごとに1つのlogを生成してどうですか、あなたはどうしたいのか、それを学ぶようにしましょう.さらに下に、PatternLayoutがあります.これはテキストを出力するスタイルです.これはテキストですが、まだ交換しなければなりません.ホームページ形式のログに変えることができます.ほかにもいくつかあります.暇があれば游ぶことができますが、このPatternLayoutは最もよく使われています.最も専門的なので、専門家になりたいなら、それを使ってください.ほほほ、冗談を言って、他のいくつかもとても専門で、甚だしきに至っては更に専門です!log 4 jに触れたばかりの人はPatternLayoutの役割をあまり理解していませんが、使ったことがあると、それがどんなに強いかがわかります.ログの表示形式はあなたの気持ちによって変わり、クラス名、クラス番号、詳細時間、ログ本文、ログレベルなど、多くの情報を出力することができます.もしあなたが自分でログツールを開発したら、あなたはこんなに強くなりますか.私は以前1つやったことがありますが、ハードコーディングしかできません.他には何もできません.それを使ったら、きっとあなたを半分怒らせます.私は3分の1怒って、私が书いたため、ほほほ、生みの亲、何もそれを责めることができなくて、あれは谁を责めます...さらに下にConversionPatternのパラメータがあります.logの表示フォーマットを構成しています.詳細なフォーマットは本明細書の後に貼り付けられます.必要があれば見てみましょう.でも、デフォルトで使うのはいいです.はい、前にデフォルトのFILE AppenderとCONSOLEのAppenderを紹介しましたが、紹介する必要はありません.jbossコンソールに表示されるログスタイルです.ここでは詳しく説明しません.この2つのデフォルトをゆっくりして、Appenderをカスタマイズすることもできますよ.例えば、あなたのプロジェクトには異なるタイプのログが異なるログに出力されているか、デフォルトのログの構成を変更したくないか、別の賢い人を探しています.どうせ個性的で、いくつの異なるログを生成してもいいです.ここで私はFILEのappenderをコピーして、それから小さい変更をして、私のカスタマイズしたlogを生成することができて、コードは以下のXmlコードです
  
<appender name="MYAPPENDER" class="org.jboss.logging.appender.DailyRollingFileAppender">  
   <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>  
   <param name="File" value="${jboss.server.log.dir}/mylog.log"/>  
   <param name="Append" value="false"/>  

     
   <param name="DatePattern" value="'.'yyyy-MM-dd"/>  

     

   <layout class="org.apache.log4j.PatternLayout">  
        
        

        
      <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>  

   layout>  
appender>  
[xml] view plain copy
  
<appender name="MYAPPENDER" class="org.jboss.logging.appender.DailyRollingFileAppender">  
   <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>  
   <param name="File" value="${jboss.server.log.dir}/mylog.log"/>  
   <param name="Append" value="false"/>  

     
   <param name="DatePattern" value="'.'yyyy-MM-dd"/>  

     

   <layout class="org.apache.log4j.PatternLayout">  
        
        

        
      <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>  

   layout>  
appender>  

logディレクトリにmylogが生成されます.logファイルですが、これらのappenderを参照する他のコードがないまでは何もできません.どのように参照するかは下を見なければなりません.jboss-log 4 j.xmlファイルの下には、次のようなコードXmlコードがたくさんあります.
  
<category name="org.jboss">  
   <priority value="INFO" />  
category>  
[xml] view plain copy
  
<category name="org.jboss">  
   <priority value="INFO" />  
category>  

何に使うの?log 4 jの強さの一つでorgであることが検出されましたjbossが出力する情報は、DEBUGの情報出力を制限します.前にjbossのロゴ情報が多すぎると言っていましたが、デフォルトではすべてのDebug情報が出力されません.これらのjbossのdebug情報は私たち庶民にとって、何の役にも立たないので、私に加えて、すべてのJBOSS DEBUG情報は出力されません.試してみてください.他のcategoryはどう変更しますか.私の経験を話してあげましょう.jbossを実行して、それを止めてserverを開きます.log、多くのlog情報が見られます.以下のような2008-10-18 16:00:59203 DEBUG[org.apache.resource.deployment.RARDeployment]Required license terms exist,view META-INF/ra.xml in …/deploy/jboss-ha-local-jdbc.rarは上の太字部分を見て、それは類orgです.apache.resource.deployment.RARDeploymentで生成されたlogは、多くのものを見ても無駄だと思ったり、DEBUG情報を見ても欲しくないので、categoryを書いて、クラスの前の部分を切り取ってcategoryのname属性に書いてください.例えば、上のようなlogは見たくありません.このように書いてください.
Xmlコード
<category name="org.apache">  
   <priority value="INFO" />  
category>  
[xml] view plain copy
  
<category name="org.apache">  
   <priority value="INFO" />  
category>  

これですべてorg.apache傘下のクラスのdebug logはもう負けません.もっと強くして、次のXmlコードを書いてもいいです.
<category name="org.apache">  
      <priority value="ERROR" />  
category>  
[xml] view plain copy
<category name="org.apache">  
      <priority value="ERROR" />  
category>  

これでorg.apacheの下の通常のINFO情報も出力されず、誤った情報だけが出力されます!他のlog情報については、serverに基づいて何度もjbossを実行します.log、あなたが望んでいないものを見つけて、categoryをもっと追加して、このようにあなたのserver.ロゴは非常に簡素になりますから、試してみてください.苦労すれば、後でロゴをコントロールしなければなりません.デバッグの間違いも便利になります.ここまで来て、まだ用事が終わっていないので、最後の点です.以前、私たちはappenderをカスタマイズして、私たちはそれを使って自分のプロジェクトのlogを出力して、私たちはただこのappenderを定義しただけで、まだそれを使っていません.それはしばらく役に立たない(ファイルを生成しますが、logは中に書いていません)、プロジェクトのlogは、serverだけです.ロゴに表示され、カスタムロゴには書き込まれません.次は最後の仕事をして、すべての仕事を完成します.categoryを1つ多く書いて、nameは自分のプロジェクトの対応することを記入して、例えばcom.mycompany、それから後ろに1行追加して、次のようにします.
Xmlコード
  
   <category name="com.mycompany">  
      <priority value="INFO" />  
      <appender-ref ref="MYAPPENDER"/>  
   category>  
[xml] view plain copy
  
   <category name="com.mycompany">  
      <priority value="INFO" />  
      <appender-ref ref="MYAPPENDER"/>  
   category>  

配置して、下に1段のコードの中でlogのコードの中で貼って、どのように使って話さないで、とても簡単で、Javaコード
public class TestLog4j   
{   
    public static void main(String[] args)    
    {   
        Logger logger = Logger.getLogger(TestLog4j. class);   
        logger.debug( " debug " );   
        logger.error( " error " );   
        logger.info("info");   
    }    
}   
[java] view plain copy
public class TestLog4j  
{  
    public static void main(String[] args)   
    {  
        Logger logger = Logger.getLogger(TestLog4j. class);  
        logger.debug( " debug " );  
        logger.error( " error " );  
        logger.info("info");  
    }   
}   

次に、一般的な構成リファレンスドキュメントを貼り付けます.
1\ログ出力レベル、合計5レベル:
FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7
2\Log 4 jが提供するappenderには、以下のものがあります.
org.apache.log4j.ConsoleAppender(コンソール)、org.apache.log4j.FileAppender(ファイル)、org.apache.log4j.DailyRollingFileAppender(毎日1つのログファイルを生成する)、org.apache.log4j.RollingFileAppender(ファイルサイズが指定サイズに達すると新しいファイルが生成される)、org.apache.log4j.WriterAppender(任意の指定された場所にログ情報をストリーム形式で送信)
3\Log 4 jが提供するlayoutには、org.apache.log4j.HTML Layout(HTML表形式でレイアウト)、org.apache.log4j.PatternLayout(レイアウトモードを柔軟に指定できる)、org.apache.log4j.SimpleLayout(ログ情報を含むレベルと情報文字列)、org.apache.log4j.TTCCLayout(ログ生成時間、スレッド、カテゴリなどの情報を含む)
4\Log 4 JはC言語のprintf関数のような印刷形式でログ情報をフォーマットし、以下のようにする:%m出力コードで指定されたメッセージ%p出力優先度、すなわちDEBUG,INFO,WARN,ERROR,FATAL%rはアプリケーションが起動してそのログ情報を出力するのにかかるミリ秒数%cから所属するクラスを出力し、通常はクラスのフルネーム%t出力がそのログイベントを生成するスレッド名%nを出力してリターン改行を出力し、Windowsプラットフォームは「/r/n」、Unixプラットフォームは「/n」%d出力ログ時点の日付または時刻、デフォルトフォーマットはISO 8601、またはその後にフォーマットを指定することもできます:%d{yyyy MMM dd HH:mm:ss,SSS}、出力類似:2002年10月18日22:10:28921%l出力ログイベントの発生位置、クラス名、発生スレッド、およびコード内の行数を含む.例:Testlog 4.main(TestLog4.Java: 10 )
変換元:http://blog.csdn.net/sdd00001/article/details/18319647