Package org.elasticsearch.common.logging
Class DeprecationLogger
- java.lang.Object
-
- org.elasticsearch.common.logging.DeprecationLogger
-
public class DeprecationLogger extends java.lang.ObjectA 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.
-
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)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 Detail
-
WARNING_HEADER_PATTERN
public static final java.util.regex.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:
java.lang.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:
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)
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 java.lang.String getXOpaqueId(java.util.Set<ThreadContext> threadContexts)
-
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
-
-