1。理解してください
SLF4J(Javaの単純なロギングファサード)は、Javaに提供されるシンプルなログファサードを表し、より基本的なポイントはインターフェイスです。プログラム内の情報をログシステムにインポートして記録することにより、プログラムとログシステムの間の分離を達成できます。
ログファサードインターフェイス自体には、通常、実際のログ出力機能がありません。下部の特定のログフレームワークAPIを呼び出す必要があります。つまり、実際には特定のログフレームワークと組み合わせて使用する必要があります。多くの特定のログフレームワークがあり、ほとんど互いに互換性がないため、ログファサードインターフェイスが任意のログフレームワークと組み合わされている場合、JDBCとさまざまな異なるデータベースの組み合わせに対応するJDBCドライバーが必要なように、対応するブリッジが必要になる場合があります。
1。ログファサード(ファサード)
1.SLF4J(推奨)
2.コモンズログ
2。SLF4J接続固有のログ
SLF4Jおよびその他のログフレームを接続する場合、中央に桥接器が必要です。一部のロギングフレームワーク自体がSLF4J APIを使用するため、ブリッジを使用する必要はありません。
LogBackはLog4Jの改良バージョンであり、SLF4J APIは内部で直接使用されるため、ブリッジはありません。 (logbackとslf4jは同じ著者からのものと言われています)
1.SLF4J-API.JAR> SLF4J-LOG4J12.JAR BRIDGE> LOG4J.JAR
2.SLF4J-API.jar> logback-core.jar、logback-classic.jar
3.SLF4J-API.JAR> SLF4J-SIMPLE.jar
4.slf4j-api.jar> log4j-slf4j-impl-2.8.2.jar> org.apache.logging.log4j:log4j-api:2.8.2、org.apache.logging.log4j:log4j-core:2.8.2、org.logging.loggging.log4j log4j2)
2. slf4j+log4j2を使用します
log4j2.xml
リソースディレクトリに入れます
<?xml version = "1.0" encoding = "utf-8"?> <! - 6つの優先度レベルは、オフ、致命的、エラー、警告、情報、デバッグ、トレース、すべてです。優先順位を警告するように設定されている場合、4つのレベルのログ、オフ、致命的、エラー、および警告は通常、オフに出力できます。これは、log4j2のログが記録されないことを意味します。 - > <! - ステータス:log4j自体の印刷ログレベルを指定するために使用されます。 MonitorInterval:log4jの監視間隔時間を自動的に再構成 - > <構成ステータス= "MonitorInterval =" 30 "> <! - $ {} - > <プロパティ> <プロパティ=" log_home "> $ {web:rootdir}/logs </properties> </propertis> </propertis> </properties> </properties> </propationコンソール、出力形式とフィルターレベルを情報として指定します - > <コンソール名= "コンソール"ターゲット= "system_out"> <! - logeoldfilterレベルの最も低いレベルの出力 - > <thresholdfilter level = "all" onmatch = "Accept onmismatch =" deny "/> %class {36}%l%m-%msg%xex%n "/> </console> <! - appender 2。スクロール保存ファイルへの出力、保存ログファイルをトリガーする条件はログファイルが3kbを超え、最新の10ログのみが保存されている - > <ファイルname =" alllog "$ shomeld" level = "all" onmatch = "accept" onmismatch = "deny"/> <patternlayout charset = "utf-8" pattern = "%d {yyyyy.mm.dd 'at' hh:mm:ss z}ログファイルの保存をトリガーする条件は、ログファイルが3kbを超えており、最新の10ログのみが保存されていることです - > <rollingfile name = "debuglog" filename = "$ {log_home}/debug.log" filepattern = "$ {log.path}/debug-appciti.log"> <thresholdfiltter " onmismatch = "deny"/> <patternlayout charset = "utf-8" pattern = "[%-5level] [%dd {yyyy-mm-dd hh:mm:ss}] [%f:%l] - %m%サイズがサイズを超えた後のアーカイブは、サイズを超えてサイズを超えています。エラーログは数分で生成されます - > <rollingfile name = "errorlog" filename = "$ {log_home}/error.log" filepattern = "$ {log.path}/error-%d {yyyy-mm-dd_hhmm} .log"> <thresholdfilter = "entermatch ="/"/" enmatmatid " <patternlayout charset = "utf-8" pattern = "[%-5level] [%d {yyyyy-mm-dd hh:mm:ss}] [%c:%f:%l] - %m%n"/> <time-basedtriggeringpolicy/>> </lollingfile> filename = "$ {log_home} /rar.log" filepattern = "$ {log_home}/$$ {date:yyyy-mm}/$ {file_name} - %d {mm-dd-yyy} - %i.log.gz"> <patternOut charset = "utf-8" pitterm dd 'pitterm HH:MM:SS Z}%-5LEVEL%クラス{36}%L%M-%MSG%XEX%N "/> <! - 最大ログファイル値は翌日に圧縮されます - > <ポリシー> <TimeBasedTriggeringPolicy/>> <sizebasedTriggeringPolicy/>> <sizebasedTriggeringPolicy/> level = "info"> <appender-ref ref = "console"/> <! - <appender-ref ref = "alllog"/> - > <! - <appender-ref ref = "debuglog"/> - > <appender-ref ref = "errorlog"/> <! - <appender-ref ref = "lollingfile"/>> </ruplogtest.java
import org.slf4j.logger; import org.slf4j.loggeractory; public class logtest {public final logger logger = oggerfactory.getLogger(getClass()); public static void main(string [] args){log.trace( "trace"); log.debug( "debug"); log.warn( "Warn"); log.info( "info"); log.error( "エラー"); }}参照記事:https://www.vevb.com/article/143486.htm
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。