Package org.elasticsearch.common.logging
Class DeprecationLogger
- java.lang.Object
-
- org.elasticsearch.common.logging.DeprecationLogger
-
public class DeprecationLogger extends Object
A logger that logs deprecation notices.
-
-
Field Summary
Fields Modifier and Type Field Description static PatternWARNING_HEADER_PATTERNRegular expression to test if a string matches the RFC7234 specification for warning headers.
-
Constructor Summary
Constructors Constructor Description DeprecationLogger(org.apache.logging.log4j.Logger parentLogger)Creates a new deprecation logger based on the parent logger.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddeprecated(String msg, Object... params)Logs a deprecation message, adding a formatted warning message as a response header on the thread context.voiddeprecatedAndMaybeLog(String key, String msg, 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 StringescapeAndEncode(String s)Escape and encode a string as a valid RFC 7230 quoted-string.static StringextractWarningValueFromWarningHeader(String s)Extracts the warning value from the value of a warning header that is formatted according to RFC 7234.static StringformatWarning(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.StringgetXOpaqueId(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 Detail
-
WARNING_HEADER_PATTERN
public static final Pattern WARNING_HEADER_PATTERN
Regular 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.
-
-
Constructor Detail
-
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 Detail
-
setThreadContext
public static void setThreadContext(ThreadContext threadContext)
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:
IllegalStateException- if thisthreadContexthas already been set
-
removeThreadContext
public static void removeThreadContext(ThreadContext threadContext)
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:
IllegalStateException- if thisthreadContextis unknown (and presumably already unset before)
-
deprecated
public void deprecated(String msg, Object... params)
Logs a deprecation message, adding a formatted warning message as a response header on the thread context.
-
deprecatedAndMaybeLog
public void deprecatedAndMaybeLog(String key, String msg, 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 String extractWarningValueFromWarningHeader(String s)
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
public String getXOpaqueId(Set<ThreadContext> threadContexts)
-
formatWarning
public static String formatWarning(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
-
-