クラス AbstractRequestLoggingFilter
- 実装されたすべてのインターフェース:
FilterEE
、Aware
、BeanNameAware
、DisposableBean
、InitializingBean
、EnvironmentAware
、EnvironmentCapable
、ServletContextAware
Filter
の基本クラス。 サブクラスは、beforeRequest(HttpServletRequest, String)
メソッドと afterRequest(HttpServletRequest, String)
メソッドをオーバーライドして、リクエストに関する実際のロギングを実行する必要があります。
サブクラスには、beforeRequest
および afterRequest
メソッドでログに書き込むメッセージが渡されます。デフォルトでは、リクエストの URI のみがログに記録されます。ただし、includeQueryString
プロパティを true
に設定すると、リクエストのクエリ文字列も含まれます。これは、includeClientInfo
および includeHeaders
によってさらに拡張できます。リクエストのペイロード(ボディコンテンツ)は、includePayload
フラグを介してログに記録できます。これは、実際に読み取られたペイロードの一部のみをログに記録することに注意してください。必ずしもリクエストのボディ全体ではありません。
変更前および変更後のメッセージのプレフィックスとサフィックスは、beforeMessagePrefix
、afterMessagePrefix
、beforeMessageSuffix
、afterMessageSuffix
プロパティを使用して構成できます。
- 導入:
- 1.2.5
- 作成者:
- Rob Harrop, Juergen Hoeller, Rossen Stoyanchev
- 関連事項:
フィールドサマリー
修飾子と型フィールド説明static final StringSE
リクエストの処理後に書き込まれるログメッセージの前に付加されるデフォルト値。static final StringSE
リクエストの処理後に書き込まれるログメッセージに追加されるデフォルト値。static final StringSE
リクエストが処理される前に書き込まれるログメッセージに付加されるデフォルト値。static final StringSE
リクエストが処理される前に書き込まれるログメッセージに追加されるデフォルト値。クラス org.springframework.web.filter.OncePerRequestFilter から継承されたフィールド
ALREADY_FILTERED_SUFFIX
クラス org.springframework.web.filter.GenericFilterBean から継承されたフィールド
logger
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明protected abstract void
afterRequest
(HttpServletRequestEE request, StringSE message) 具象サブクラスは、このメソッドを実装して、リクエストの処理後にログメッセージを書き込む必要があります。protected abstract void
beforeRequest
(HttpServletRequestEE request, StringSE message) 具象サブクラスはこのメソッドを実装して、リクエストが処理される前にログメッセージを書き込む必要があります。protected StringSE
createMessage
(HttpServletRequestEE request, StringSE prefix, StringSE suffix) 指定されたリクエスト、プレフィックス、サフィックスのログメッセージを作成します。protected void
doFilterInternal
(HttpServletRequestEE request, HttpServletResponseEE response, FilterChainEE filterChain) リクエストをチェーンの次のフィルターに転送し、サブクラスに委譲して、リクエストが処理される前と後の両方で実際のリクエストロギングを実行します。protected PredicateSE<StringSE>
構成されたheaderPredicate
。protected int
ログメッセージに含まれるペイロードボディの最大長を返します。protected StringSE
getMessagePayload
(HttpServletRequestEE request) isIncludePayload()
が true を返す場合、createMessage(HttpServletRequest, String, String)
によって作成されたメッセージのメッセージペイロード部分を抽出します。protected boolean
クライアントアドレスとセッション ID をログメッセージに含めるかどうかを返します。protected boolean
リクエストヘッダーをログメッセージに含めるかどうかを返します。protected boolean
リクエストのペイロード(ボディ)をログメッセージに含めるかどうかを返します。protected boolean
クエリ文字列をログメッセージに含めるかどうかを返します。void
setAfterMessagePrefix
(StringSE afterMessagePrefix) リクエストの処理後に書き込まれるログメッセージに付加する必要がある値を設定します。void
setAfterMessageSuffix
(StringSE afterMessageSuffix) リクエストの処理後に書き込まれるログメッセージに追加する値を設定します。void
setBeforeMessagePrefix
(StringSE beforeMessagePrefix) リクエストが処理される前に書き込まれるログメッセージに付加する必要がある値を設定します。void
setBeforeMessageSuffix
(StringSE beforeMessageSuffix) リクエストが処理される前に書き込まれるログメッセージに追加する必要がある値を設定します。void
setHeaderPredicate
(PredicateSE<StringSE> headerPredicate) setIncludeHeaders(boolean)
がtrue
に設定されている場合、ログに記録するヘッダーを選択するための述語を構成します。void
setIncludeClientInfo
(boolean includeClientInfo) クライアントアドレスとセッション ID をログメッセージに含めるかどうかを設定します。void
setIncludeHeaders
(boolean includeHeaders) リクエストヘッダーをログメッセージに含めるかどうかを設定します。void
setIncludePayload
(boolean includePayload) リクエストのペイロード(ボディ)をログメッセージに含めるかどうかを設定します。void
setIncludeQueryString
(boolean includeQueryString) クエリ文字列をログメッセージに含めるかどうかを設定します。void
setMaxPayloadLength
(int maxPayloadLength) ログメッセージに含まれるペイロードボディの最大長を設定します。protected boolean
shouldLog
(HttpServletRequestEE request) protected boolean
デフォルト値は "false" で、リクエスト処理の開始時に "before" メッセージがログに記録され、最後に非同期にディスパッチされたスレッドが終了したときから最後に "after" メッセージがログに記録されます。クラス org.springframework.web.filter.OncePerRequestFilter から継承されたメソッド
doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterErrorDispatch
クラス org.springframework.web.filter.GenericFilterBean から継承されたメソッド
addRequiredProperty, afterPropertiesSet, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext
フィールドの詳細
DEFAULT_BEFORE_MESSAGE_PREFIX
リクエストが処理される前に書き込まれるログメッセージに付加されるデフォルト値。- 関連事項:
DEFAULT_BEFORE_MESSAGE_SUFFIX
リクエストが処理される前に書き込まれるログメッセージに追加されるデフォルト値。- 関連事項:
DEFAULT_AFTER_MESSAGE_PREFIX
リクエストの処理後に書き込まれるログメッセージの前に付加されるデフォルト値。- 関連事項:
DEFAULT_AFTER_MESSAGE_SUFFIX
リクエストの処理後に書き込まれるログメッセージに追加されるデフォルト値。- 関連事項:
コンストラクターの詳細
AbstractRequestLoggingFilter
public AbstractRequestLoggingFilter()
メソッドの詳細
setIncludeQueryString
public void setIncludeQueryString(boolean includeQueryString) クエリ文字列をログメッセージに含めるかどうかを設定します。web.xml
のフィルター定義で、パラメーター名 "includeQueryString" に<init-param>
を使用して構成する必要があります。isIncludeQueryString
protected boolean isIncludeQueryString()クエリ文字列をログメッセージに含めるかどうかを返します。setIncludeClientInfo
public void setIncludeClientInfo(boolean includeClientInfo) クライアントアドレスとセッション ID をログメッセージに含めるかどうかを設定します。web.xml
のフィルター定義で、パラメーター名 "includeClientInfo" に<init-param>
を使用して構成する必要があります。isIncludeClientInfo
protected boolean isIncludeClientInfo()クライアントアドレスとセッション ID をログメッセージに含めるかどうかを返します。setIncludeHeaders
public void setIncludeHeaders(boolean includeHeaders) リクエストヘッダーをログメッセージに含めるかどうかを設定します。web.xml
のフィルター定義で、パラメーター名 "includeHeaders" に<init-param>
を使用して構成する必要があります。- 導入:
- 4.3
isIncludeHeaders
protected boolean isIncludeHeaders()リクエストヘッダーをログメッセージに含めるかどうかを返します。- 導入:
- 4.3
setIncludePayload
public void setIncludePayload(boolean includePayload) リクエストのペイロード(ボディ)をログメッセージに含めるかどうかを設定します。web.xml
のフィルター定義で、パラメーター名 "includePayload" に<init-param>
を使用して構成する必要があります。- 導入:
- 3.0
isIncludePayload
protected boolean isIncludePayload()リクエストのペイロード(ボディ)をログメッセージに含めるかどうかを返します。- 導入:
- 3.0
setHeaderPredicate
setIncludeHeaders(boolean)
がtrue
に設定されている場合、ログに記録するヘッダーを選択するための述語を構成します。デフォルトでは、これは設定されていません。その場合、すべてのヘッダーがログに記録されます。
- パラメーター:
headerPredicate
- 使用する述語- 導入:
- 5.2
getHeaderPredicate
構成されたheaderPredicate
。- 導入:
- 5.2
setMaxPayloadLength
public void setMaxPayloadLength(int maxPayloadLength) ログメッセージに含まれるペイロードボディの最大長を設定します。デフォルトは 50 文字です。- 導入:
- 3.0
getMaxPayloadLength
protected int getMaxPayloadLength()ログメッセージに含まれるペイロードボディの最大長を返します。- 導入:
- 3.0
setBeforeMessagePrefix
リクエストが処理される前に書き込まれるログメッセージに付加する必要がある値を設定します。setBeforeMessageSuffix
リクエストが処理される前に書き込まれるログメッセージに追加する必要がある値を設定します。setAfterMessagePrefix
リクエストの処理後に書き込まれるログメッセージに付加する必要がある値を設定します。setAfterMessageSuffix
リクエストの処理後に書き込まれるログメッセージに追加する値を設定します。shouldNotFilterAsyncDispatch
protected boolean shouldNotFilterAsyncDispatch()デフォルト値は "false" で、リクエスト処理の開始時に "before" メッセージがログに記録され、最後に非同期にディスパッチされたスレッドが終了したときから最後に "after" メッセージがログに記録されます。- オーバーライド:
- クラス
OncePerRequestFilter
のshouldNotFilterAsyncDispatch
doFilterInternal
protected void doFilterInternal(HttpServletRequestEE request, HttpServletResponseEE response, FilterChainEE filterChain) throws ServletExceptionEE, IOExceptionSE リクエストをチェーンの次のフィルターに転送し、サブクラスに委譲して、リクエストが処理される前と後の両方で実際のリクエストロギングを実行します。createMessage
指定されたリクエスト、プレフィックス、サフィックスのログメッセージを作成します。includeQueryString
がtrue
の場合、ログメッセージの内部はrequest_uri?query_string
の形式になります。それ以外の場合、メッセージは単にrequest_uri
の形式になります。最後のメッセージは、説明されている内部部分と、指定されたプレフィックスおよびサフィックスで構成されます。
getMessagePayload
isIncludePayload()
が true を返す場合、createMessage(HttpServletRequest, String, String)
によって作成されたメッセージのメッセージペイロード部分を抽出します。- 導入:
- 5.0.3
shouldLog
現在のリクエストに対してbeforeRequest(jakarta.servlet.http.HttpServletRequest, java.lang.String)
/afterRequest(jakarta.servlet.http.HttpServletRequest, java.lang.String)
メソッドを呼び出すかどうか、つまり、ロギングが現在アクティブになっているかどうか(およびログメッセージを作成する価値があるかどうか)を決定します。デフォルトの実装は、常に
true
を返します。サブクラスは、ログレベルチェックでこれをオーバーライドできます。- パラメーター:
request
- 現在の HTTP リクエスト- 戻り値:
- before/after メソッドが呼び出される場合は
true
。それ以外の場合はfalse
- 導入:
- 4.1.5
beforeRequest
具象サブクラスはこのメソッドを実装して、リクエストが処理される前にログメッセージを書き込む必要があります。- パラメーター:
request
- 現在の HTTP リクエストmessage
- 記録するメッセージ
afterRequest
具象サブクラスは、このメソッドを実装して、リクエストの処理後にログメッセージを書き込む必要があります。- パラメーター:
request
- 現在の HTTP リクエストmessage
- 記録するメッセージ