Package org.elasticsearch.common.logging
Class DeprecationLogger
java.lang.Object
org.elasticsearch.common.logging.DeprecationLogger
public class DeprecationLogger
extends java.lang.Object
A logger that logs deprecation notices.
-
Field Summary
Fields Modifier and Type Field Description static java.util.regex.PatternWARNING_HEADER_PATTERNRegular expression to test if a string matches the RFC7234 specification for warning headers.static java.util.regex.PatternWARNING_XCONTENT_LOCATION_PATTERN -
Constructor Summary
Constructors Constructor Description DeprecationLogger(org.apache.logging.log4j.Logger parentLogger)Creates a new deprecation logger based on the parent logger. -
Method Summary
Modifier and Type Method Description voiddeprecated(java.lang.String msg, java.lang.Object... params)Logs a deprecation message, adding a formatted warning message as a response header on the thread context.voiddeprecatedAndMaybeLog(java.lang.String key, java.lang.String msg, java.lang.Object... params)Adds a formatted warning message as a response header on the thread context, and logs a deprecation message if the associated key has not recently been seen.static java.lang.StringescapeAndEncode(java.lang.String s)Escape and encode a string as a valid RFC 7230 quoted-string.static java.lang.StringextractWarningValueFromWarningHeader(java.lang.String s, boolean stripXContentPosition)Extracts the warning value from the value of a warning header that is formatted according to RFC 7234.static java.lang.StringformatWarning(java.lang.String s)Format a warning string in the proper warning format by prepending a warn code, warn agent, wrapping the warning string in quotes, and appending the RFC 7231 date.java.lang.StringgetXOpaqueId(java.util.Set<ThreadContext> threadContexts)static voidremoveThreadContext(ThreadContext threadContext)Remove theThreadContextused to add deprecation headers to network responses.static voidsetThreadContext(ThreadContext threadContext)Set theThreadContextused to add deprecation headers to network responses.
-
Field Details
-
WARNING_HEADER_PATTERN
public static final java.util.regex.Pattern WARNING_HEADER_PATTERNRegular expression to test if a string matches the RFC7234 specification for warning headers. This pattern assumes that the warn code is always 299. Further, this pattern assumes that the warn agent represents a version of Elasticsearch including the build hash. -
WARNING_XCONTENT_LOCATION_PATTERN
public static final java.util.regex.Pattern WARNING_XCONTENT_LOCATION_PATTERN
-
-
Constructor Details
-
DeprecationLogger
public DeprecationLogger(org.apache.logging.log4j.Logger parentLogger)Creates a new deprecation logger based on the parent logger. Automatically prefixes the logger name with "deprecation", if it starts with "org.elasticsearch.", it replaces "org.elasticsearch" with "org.elasticsearch.deprecation" to maintain the "org.elasticsearch" namespace.
-
-
Method Details
-
setThreadContext
Set theThreadContextused to add deprecation headers to network responses.This is expected to only be invoked by the
Node's constructor (therefore once outside of tests).- Parameters:
threadContext- The thread context owned by theThreadPool(and implicitly aNode)- Throws:
java.lang.IllegalStateException- if thisthreadContexthas already been set
-
removeThreadContext
Remove theThreadContextused to add deprecation headers to network responses.This is expected to only be invoked by the
Node'sclosemethod (therefore once outside of tests).- Parameters:
threadContext- The thread context owned by theThreadPool(and implicitly aNode)- Throws:
java.lang.IllegalStateException- if thisthreadContextis unknown (and presumably already unset before)
-
deprecated
public void deprecated(java.lang.String msg, java.lang.Object... params)Logs a deprecation message, adding a formatted warning message as a response header on the thread context. -
deprecatedAndMaybeLog
public void deprecatedAndMaybeLog(java.lang.String key, java.lang.String msg, java.lang.Object... params)Adds a formatted warning message as a response header on the thread context, and logs a deprecation message if the associated key has not recently been seen.- Parameters:
key- the key used to determine if this deprecation should be loggedmsg- the message to logparams- parameters to the message
-
extractWarningValueFromWarningHeader
public static java.lang.String extractWarningValueFromWarningHeader(java.lang.String s, boolean stripXContentPosition)Extracts the warning value from the value of a warning header that is formatted according to RFC 7234. That is, given a string299 Elasticsearch-6.0.0 "warning value", the return value of this method would bewarning value.- Parameters:
s- the value of a warning header formatted according to RFC 7234.- Returns:
- the extracted warning value
-
getXOpaqueId
-
formatWarning
public static java.lang.String formatWarning(java.lang.String s)Format a warning string in the proper warning format by prepending a warn code, warn agent, wrapping the warning string in quotes, and appending the RFC 7231 date.- Parameters:
s- the warning string to format- Returns:
- a warning value formatted according to RFC 7234
-
escapeAndEncode
public static java.lang.String escapeAndEncode(java.lang.String s)Escape and encode a string as a valid RFC 7230 quoted-string.- Parameters:
s- the string to escape and encode- Returns:
- the escaped and encoded string
-