Class FileSdkLogger

java.lang.Object
com.sportradar.livedata.sdk.common.classes.BaseSdkLogger
com.sportradar.livedata.sdk.common.classes.FileSdkLogger
All Implemented Interfaces:
SdkLogger

public class FileSdkLogger extends BaseSdkLogger implements SdkLogger
File SDK logger implementation.
  • Field Details

  • Constructor Details

  • Method Details

    • getAppenderType

      public static SdkLogAppenderType getAppenderType(String appenderName)
      Return enum of type SdkLogAppenderType from a given appender name.
      Parameters:
      appenderName - specified appender type name
      Returns:
      appender type of type SdkLogAppenderType from given appender name
    • getLevel

      public static ch.qos.logback.classic.Level getLevel(String level)
    • isDebugEnabled

      public boolean isDebugEnabled(SdkLogAppenderType appenderType)
      Return true when logger with given appender type have current log level equal to debug, otherwise return false.
      Specified by:
      isDebugEnabled in interface SdkLogger
      Parameters:
      appenderType - specified appender type
      Returns:
      true when logger with appender type have current level equal to debug, otherwise false
    • isErrorEnabled

      public boolean isErrorEnabled(SdkLogAppenderType appenderType)
      Return true when logger with given appender type have current log level equal to error, otherwise return false.
      Specified by:
      isErrorEnabled in interface SdkLogger
      Parameters:
      appenderType - specified appender type
      Returns:
      true when logger with appender type have current level equal to error, otherwise false
    • isInfoEnabled

      public boolean isInfoEnabled(SdkLogAppenderType appenderType)
      Return true when logger with given appender type have current log level equal to info, otherwise return false.
      Specified by:
      isInfoEnabled in interface SdkLogger
      Parameters:
      appenderType - specified appender type
      Returns:
      true when logger with appender type have current level equal to info, otherwise false
    • isLevelEnabled

      public boolean isLevelEnabled(ch.qos.logback.classic.Level level, SdkLogAppenderType appenderType)
      Return true when logger with given appender type have current log level equal to given level, otherwise false.
      Specified by:
      isLevelEnabled in interface SdkLogger
      Parameters:
      level - specified level
      appenderType - specified appender type
      Returns:
      true when logger with appender type have current level equal to level, otherwise false
    • isTraceEnabled

      public boolean isTraceEnabled(SdkLogAppenderType appenderType)
      Return true when logger with given appender type have current log level equal to trace, otherwise return false.
      Specified by:
      isTraceEnabled in interface SdkLogger
      Parameters:
      appenderType - specified appender type
      Returns:
      true when logger with appender type have current level equal to trace, otherwise false
    • isWarnEnabled

      public boolean isWarnEnabled(SdkLogAppenderType appenderType)
      Return true when logger with given appender type have current log level equal to warn, otherwise return false.
      Specified by:
      isWarnEnabled in interface SdkLogger
      Parameters:
      appenderType - specified appender type
      Returns:
      true when logger with appender type have current level equal to warn, otherwise false
    • logAlert

      public void logAlert(ch.qos.logback.classic.Level level, String message)
      SDK will generate and signal alerts in case of any special events. This could happen when network connection is dropped, rate-limiting thresholds are exceeded, when going over queue low/high watermarks, when feed error recovery is in progress, if persistent state store gets out-of-sync, when event dispatching is put on pause, when SDK library is reloaded, current status of login sequence, etc. Alerts will be dumped into dedicated alert logs. Special alerts (configurable) could be logged to other log appenders, like SMTP appender, NT Event Log appender or JmxLogger appender.
      Specified by:
      logAlert in interface SdkLogger
      Parameters:
      level - Log level
      message - Alert message
    • logAlert

      public void logAlert(ch.qos.logback.classic.Level level, String message, Exception exception)
      SDK will generate and signal alerts in case of any special events. This could happen when network connection is dropped, rate-limiting thresholds are exceeded, when going over queue low/high watermarks, when feed error recovery is in progress, if persistent state store gets out-of-sync, when event dispatching is put on pause, when SDK library is reloaded, current status of login sequence, etc. Alerts will be dumped into dedicated alert logs. Special alerts (configurable) could be logged to other log appenders, like SMTP appender, NT Event Log appender or JmxLogger appender.
      Specified by:
      logAlert in interface SdkLogger
      Parameters:
      level - - Log level
      message - Alert message
      exception - Optional exception
    • logClientInteraction

      public void logClientInteraction(ch.qos.logback.classic.Level level, String message)
      All interaction with the client software on the SDK interface level will be logged in a separate client communication log. This includes all method invocations on the SDK interface including parameter values, request parameter validation errors and other errors returned by the SDK, unhandled client exceptions, errors reported by the client handlers, timings of each call, etc.
      Specified by:
      logClientInteraction in interface SdkLogger
      Parameters:
      level - Log level
      message - String message
    • logClientInteraction

      public void logClientInteraction(ch.qos.logback.classic.Level level, String message, Exception exception)
      Description copied from interface: SdkLogger
      All interaction with the client software on the SDK interface level will be logged in a separate client communication log. This includes all method invocations on the SDK interface including parameter values, request parameter validation errors and other errors returned by the SDK, unhandled client exceptions, errors reported by the client handlers, timings of each call, etc.
      Specified by:
      logClientInteraction in interface SdkLogger
      Parameters:
      level - Log level
      message - String message
      exception - Optional exception
    • logClientInteraction

      public void logClientInteraction(ch.qos.logback.classic.Level level, String message, org.joda.time.Duration interval, Exception exception)
      Description copied from interface: SdkLogger
      All interaction with the client software on the SDK interface level will be logged in a separate client communication log. This includes all method invocations on the SDK interface including parameter values, request parameter validation errors and other errors returned by the SDK, unhandled client exceptions, errors reported by the client handlers, timings of each call, etc.
      Specified by:
      logClientInteraction in interface SdkLogger
      Parameters:
      level - Log level
      message - String message
      interval - Elapsed time while processing client request or client handler invocation (optional)
      exception - Optional exception
    • logInvalidMessage

      public void logInvalidMessage(ch.qos.logback.classic.Level level, String message)
      Corrupt input feed data will be dumped into log files dedicated to corrupt input data (could be garbage and not even text, exceeding max buffer size). Invalid input messages will be dumped into log files dedicated to invalid input messages (text, but not necessarily XML).
      Specified by:
      logInvalidMessage in interface SdkLogger
      Parameters:
      level - Log level
      message - Invalid message
    • logTraffic

      public void logTraffic(boolean outgoing, String message)
      Depending on configuration SDK will be able to dump all feed XML traffic into dedicated traffic logs. This data is already logged at the feed server level but here the client will have possibility to configure traffic log filters based on the type of message, level of detail, match id, etc.
      Specified by:
      logTraffic in interface SdkLogger
      Parameters:
      outgoing - when true it specifies a message the SDK has sent; false means that a message SDK received
      message - Message that was either read or written to the communication channel
    • logTraffic

      public void logTraffic(String message)
      Dump given message to traffic log.
      Specified by:
      logTraffic in interface SdkLogger
      Parameters:
      message - Message that was either read or written to the channel
    • log

      protected void log(ch.qos.logback.classic.Logger logger, ch.qos.logback.classic.Level level, String message)
      Specified by:
      log in class BaseSdkLogger
    • logWithException

      public void logWithException(org.slf4j.Logger logger, ch.qos.logback.classic.Level level, String message, Exception exception)
      Specified by:
      logWithException in class BaseSdkLogger