Migration-Maven、Gradleなしで純jarファイルに移行
私が会社で成功した応用方法に基づいて作成します.
ソリューションをインストールするときは、
実際、既存の部門が担当しているプロジェクトの半分はjava 7バージョンのBase、
私が選択した移行バージョンは
Java 7を使用するいくつかのプロジェクトがあるため、Java 7をサポートするセキュリティ・ホールの問題は解決された最新バージョンです.
ダウンロードバージョン2.12.2.3
会社コードは公開できないため、log 4 j->log 4 j 2に変更すると、ログ・オブジェクトのメソッド・パラメータ・タイプが変更されることに注意して変更する必要があります.
既存のWebContent/WEB-INF/libから次の項目を削除します。
既存のパス
新しいパス
APACHE公式ドラフトドキュメントのデフォルトフォーマット
monitorInterval="30"とは、ログ4 jがファイルが変更されたかどうかを確認するサイクルが"30"分である.
Javaで計算するとグローバル変数のようです.
具体的な使用方法はリンク ConsoleAppender RollingFileAppender FileAppender JDBCAppender など... の具体的な使用方法は、リンク2 である.
ここでは、最もコアなRollingFileAppenderについて個別に紹介します.
jarファイルの新しいバージョンを追加
ソリューションをインストールするときは、
Maven
やGradle
などの外部バージョンを使用するのではなく、jarファイル로컬에서 직접 관리
を使用してビジネスを行います.実際、既存の部門が担当しているプロジェクトの半分はjava 7バージョンのBase、
Log4j 1.2.16
バージョンを使用しているため、今回のセキュリティ問題は弱点から除外されていますが、この機会に最新バージョンに移行することをお勧めします.私が選択した移行バージョンは
2.12.3
です.Java 7を使用するいくつかのプロジェクトがあるため、Java 7をサポートするセキュリティ・ホールの問題は解決された最新バージョンです.
ダウンロードバージョン2.12.2.3
会社コードは公開できないため、log 4 j->log 4 j 2に変更すると、ログ・オブジェクトのメソッド・パラメータ・タイプが変更されることに注意して変更する必要があります.
既存のWebContent/WEB-INF/libから次の項目を削除します。
既存log 4 j。xmlファイルを削除した後、log 4 j 2を他のパスにルーティングします。xmlファイルの追加
既存log 4 j.xmlファイルはsrcの真下にありますが、log 4 j 2です.xmlファイルは、WebContent/WEB-INFサブディレクトリにclassというディレクトリを作成して追加できます.
既存log 4 j.xmlファイルはsrcの真下にありますが、log 4 j 2です.xmlファイルは、WebContent/WEB-INFサブディレクトリにclassというディレクトリを作成して追加できます.
追加するlog 4 j 2。xmlコードの構成
APACHE公式ドラフトドキュメントのデフォルトフォーマット
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug" name="RoutingTest" monitorInterval="30">
<Properties>
<Property name="filename">target/rolling1/rollingtest-$${sd:type}.log</Property>
</Properties>
<ThresholdFilter level="debug"/>
<Appenders>
<Console name="STDOUT">
<PatternLayout pattern="%m%n"/>
<ThresholdFilter level="debug"/>
</Console>
<Routing name="Routing">
<Routes pattern="$${sd:type}">
<Route>
<RollingFile name="Rolling-${sd:type}" fileName="${filename}"
filePattern="target/rolling1/test1-${sd:type}.%i.log.gz">
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
<SizeBasedTriggeringPolicy size="500" />
</RollingFile>
</Route>
<Route ref="STDOUT" key="Audit"/>
</Routes>
</Routing>
</Appenders>
<Loggers>
<Logger name="EventLogger" level="info" additivity="false">
<AppenderRef ref="Routing"/>
</Logger>
<Root level="error">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
これらの要素を簡単に紹介します.<Configuration>
は、ログ設定の最上位ノードです.<Properties>, <Appenders>, <Loggers>
要素がサブノードとして使用されます.status
属性はlog 4 jの内部イベントのログレベルを表す.monitorInterval="30"とは、ログ4 jがファイルが変更されたかどうかを確認するサイクルが"30"分である.
<Properties>
は、<Configuration>
の領域内で使用されるPropertyを表す.Javaで計算するとグローバル変数のようです.
<Layout>
は、日付または時刻(12,24)のフォーマット、色、出力要素などを決定できる要因である.具体的な使用方法はリンク
<Appenders>
は、ログ情報を特定の場所に送信する役割である.ここでは、最もコアなRollingFileAppenderについて個別に紹介します.
<RollingFile name="Rolling-${sd:type}" fileName="${filename}"
filePattern="target/rolling1/test1-${sd:type}.%i.log.gz">
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
<SizeBasedTriggeringPolicy size="500" />
</Policies>
<DefaultRolloverStrategy max="10" fileIndex="min"/>
</RollingFile>
ログ・ファイルに問題が発生した場合、ログがすべて失われる可能性があるため、RollingFileAppenderは事前に設定できます.RollingFileAppenderは、ログをファイルに記録し、特定の基準に従って圧縮および格納するAppenderです.<Logger>
Rootパッケージの<Logger>
が必要であり、複数のパッケージを適用する場合、<Loggers>
内に複数の<Logger>
を設けることができる.<Loggers>
<!-- Additivity값은 중복된 로그를 남길 지에 대한 속성 -->
<Logger name="EventLogger" level="INFO" additivity="false">
<AppenderRef ref="Routing"/>
</Logger>
<Root level="error">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
このレコーダは、INFO以上のログをコンソールに保持するファイル名=「EventLoger」パッケージです.jarファイルの新しいバージョンを追加
コード変更 // 변경 전
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
//변경 후
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
---------------------------------------------------------------------
//변경 전
//변수이름과 (“??”)안의 클래스명은 기존 코드에 맞게 알아서 수정
protected static final Log log = LogFactory.getLog(“??”)
//변경 후
protected static final Logger log = LoggerFactory.getLogger(“??”)
ちなみにjava 8バージョン以上からサポートされている2.17.0バージョンも試してみましたが、同じ動作で問題ないことを確認しました.
リファレンス
https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution
Reference
この問題について(Migration-Maven、Gradleなしで純jarファイルに移行), 我々は、より多くの情報をここで見つけました
https://velog.io/@clothes/Log4j-Migration-MavenGradle-없이-순수-jar-파일로-마이그레이션
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
// 변경 전
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
//변경 후
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
---------------------------------------------------------------------
//변경 전
//변수이름과 (“??”)안의 클래스명은 기존 코드에 맞게 알아서 수정
protected static final Log log = LogFactory.getLog(“??”)
//변경 후
protected static final Logger log = LoggerFactory.getLogger(“??”)
ちなみにjava 8バージョン以上からサポートされている2.17.0バージョンも試してみましたが、同じ動作で問題ないことを確認しました.リファレンス
https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution
Reference
この問題について(Migration-Maven、Gradleなしで純jarファイルに移行), 我々は、より多くの情報をここで見つけました
https://velog.io/@clothes/Log4j-Migration-MavenGradle-없이-순수-jar-파일로-마이그레이션
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(Migration-Maven、Gradleなしで純jarファイルに移行), 我々は、より多くの情報をここで見つけました https://velog.io/@clothes/Log4j-Migration-MavenGradle-없이-순수-jar-파일로-마이그레이션テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol