Class AbstractSessionLog

java.lang.Object
org.eclipse.persistence.logging.AbstractSessionLog
All Implemented Interfaces:
Cloneable, SessionLog
Direct Known Subclasses:
DefaultSessionLog, JavaLog, ServerLog, SLF4JLogger

public abstract class AbstractSessionLog extends Object implements SessionLog, Cloneable
Represents the abstract log that implements all the generic logging functions. It contains a singleton SessionLog that logs messages from outside any EclipseLink session. The singleton SessionLog can also be passed to an EclipseLink session when messages are logged through that session. When JDK1.4 is used, a singleton JavaLog is created. Otherwise a singleton DefaultSessionLog is created.
See Also:
  • Field Details

    • level

      protected int level
      Represents the log level
    • defaultLog

      protected static SessionLog defaultLog
      Represents the singleton SessionLog
    • session

      protected Session session
      Represents the session that owns this SessionLog
    • SEVERE_PREFIX

      protected static String SEVERE_PREFIX
      Represents prefix to logged severe
    • WARNING_PREFIX

      protected static String WARNING_PREFIX
      Represents prefix to logged warning
    • INFO_PREFIX

      protected static String INFO_PREFIX
      Represents prefix to logged info
    • CONFIG_PREFIX

      protected static String CONFIG_PREFIX
      Represents prefix to logged config
    • FINE_PREFIX

      protected static String FINE_PREFIX
      Represents prefix to logged fine
    • FINER_PREFIX

      protected static String FINER_PREFIX
      Represents prefix to logged finer
    • FINEST_PREFIX

      protected static String FINEST_PREFIX
      Represents prefix to logged finest
    • CONNECTION_STRING

      protected static final String CONNECTION_STRING
      Connection string
      See Also:
    • THREAD_STRING

      protected static final String THREAD_STRING
      Thread string
      See Also:
    • writer

      protected Writer writer
      Represents the writer that will receive the formatted log entries
    • DATE_FORMAT_STR

      protected static String DATE_FORMAT_STR
    • dateFormat

      protected DateFormat dateFormat
      Format use to print the current date/time.
    • shouldLogExceptionStackTrace

      protected Boolean shouldLogExceptionStackTrace
      Allows the printing of the stack to be explicitly disabled/enabled. CR #3870467. null value is default behavior of determining from log level.
    • shouldPrintDate

      protected Boolean shouldPrintDate
      Allows the printing of the date to be explicitly disabled/enabled. CR #3870467. null value is default behavior of determining from log level.
    • shouldPrintThread

      protected Boolean shouldPrintThread
      Allows the printing of the thread to be explicitly disabled/enabled. CR #3870467. null value is default behavior of determining from log level.
    • shouldPrintSession

      protected Boolean shouldPrintSession
      Allows the printing of the session to be explicitly disabled/enabled. CR #3870467. null value is default behavior of determining from log level.
    • shouldPrintConnection

      protected Boolean shouldPrintConnection
      Allows the printing of the connection to be explicitly disabled/enabled. CR #4157545. null value is default behavior of determining from log level.
    • shouldDisplayData

      protected Boolean shouldDisplayData
      Used to determine if bingdparameters should be logged or hidden.
  • Constructor Details

    • AbstractSessionLog

      protected AbstractSessionLog()
      PUBLIC: Create a new AbstractSessionLog
  • Method Details

    • getDefaultLoggingLevel

      public static int getDefaultLoggingLevel()
      Return the system default log level. This is based on the System property "eclipselink.logging.level", or INFO if not set.
    • getLevel

      public int getLevel()
      PUBLIC:

      Return the log level. It is used when session is not available.

      Specified by:
      getLevel in interface SessionLog
      Returns:
      the log level
    • getLevelString

      public String getLevelString()
      PUBLIC:

      Return the log level as a string value.

      Specified by:
      getLevelString in interface SessionLog
    • getLevel

      public int getLevel(String category)
      PUBLIC:

      Return the log level for the category name space.

      Specified by:
      getLevel in interface SessionLog
      Parameters:
      category - the string representation of a EclipseLink category, e.g. "sql", "transaction" ...
      Returns:
      the log level
    • setLevel

      public void setLevel(int level)
      PUBLIC:

      Set the log level. It is used when session is not available.

      Specified by:
      setLevel in interface SessionLog
      Parameters:
      level - the new log level
    • setLevel

      public void setLevel(int level, String category)
      PUBLIC:

      Set the log level for the category name space.

      Specified by:
      setLevel in interface SessionLog
      Parameters:
      level - the new log level
      category - the string representation of an EclipseLink category, e.g. "sql", "transaction" ...
    • shouldDisplayData

      public boolean shouldDisplayData()
      PUBLIC: Return true if SQL logging should log visible bind parameters. If the shouldDisplayData is not set, check the session log level and return true for a level greater than CONFIG.
      Specified by:
      shouldDisplayData in interface SessionLog
    • shouldLog

      public boolean shouldLog(int level)
      PUBLIC:

      Check if a message of the given level would actually be logged. It is used when session is not available.

      Specified by:
      shouldLog in interface SessionLog
      Parameters:
      level - the log request level
      Returns:
      true if the given message level will be logged
    • shouldLog

      public boolean shouldLog(int level, String category)
      PUBLIC:

      Check if a message of the given level would actually be logged for the category name space. !isOff() is checked to screen out the possibility when both log level and log request level are set to OFF.

      Specified by:
      shouldLog in interface SessionLog
      Parameters:
      level - the log request level
      category - the string representation of an EclipseLink category, e.g. "sql", "transaction" ...*
      Returns:
      true if the given message level will be logged
    • getLog

      public static SessionLog getLog()
      PUBLIC:

      Return the singleton SessionLog. If the singleton SessionLog does not exist, a new one is created based on the version of JDK being used from the Version class.

      Returns:
      the singleton SessionLog
    • setLog

      public static void setLog(SessionLog sessionLog)
      PUBLIC:

      Set the singleton SessionLog.

      Parameters:
      sessionLog - a SessionLog
    • getSession

      public Session getSession()
      PUBLIC:

      Get the session.

      Specified by:
      getSession in interface SessionLog
      Returns:
      session
    • setSession

      public void setSession(Session session)
      PUBLIC:

      Set the session.

      Specified by:
      setSession in interface SessionLog
      Parameters:
      session - a Session
    • log

      public void log(int level, String message)
      PUBLIC:

      Log a message that does not need to be translated. This method is intended for external use when logging messages are required within the EclipseLink output.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level value
      message - the string message - this should not be a bundle key
    • log

      public void log(int level, String message, Object param)
      PUBLIC:

      Log a message with one parameter that needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level value
      message - the string message
      param - a parameter of the message
    • log

      public void log(int level, String category, String message, Object param)
      PUBLIC:

      Log a message with one parameter that needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level value
      message - the string message
      param - a parameter of the message
    • log

      public void log(int level, String message, Object param1, Object param2)
      PUBLIC:

      Log a message with two parameters that needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level value
      message - the string message
      param1 - a parameter of the message
      param2 - second parameter of the message
    • log

      public void log(int level, String category, String message, Object param1, Object param2)
      PUBLIC:

      Log a message with two parameters that needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level value
      message - the string message
      param1 - a parameter of the message
      param2 - second parameter of the message
    • log

      public void log(int level, String message, Object param1, Object param2, Object param3)
      PUBLIC:

      Log a message with three parameters that needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level value
      message - the string message
      param1 - a parameter of the message
      param2 - second parameter of the message
      param3 - third parameter of the message
    • log

      public void log(int level, String category, String message, Object param1, Object param2, Object param3)
      PUBLIC:

      Log a message with three parameters that needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level value
      message - the string message
      param1 - a parameter of the message
      param2 - second parameter of the message
      param3 - third parameter of the message
    • log

      public void log(int level, String message, Object param1, Object param2, Object param3, Object param4)
      PUBLIC:

      Log a message with four parameters that needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level value
      message - the string message
      param1 - a parameter of the message
      param2 - second parameter of the message
      param3 - third parameter of the message
      param4 - third parameter of the message
    • log

      public void log(int level, String category, String message, Object param1, Object param2, Object param3, Object param4)
      PUBLIC:

      Log a message with four parameters that needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level value
      message - the string message
      param1 - a parameter of the message
      param2 - second parameter of the message
      param3 - third parameter of the message
      param4 - third parameter of the message
    • log

      public void log(int level, String message, Object[] params)
      PUBLIC:

      Log a message with an array of parameters that needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level value
      message - the string message
      params - array of parameters to the message
    • log

      public void log(int level, String category, String message, Object[] params)
      PUBLIC:

      Log a message with an array of parameters that needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level value
      message - the string message
      params - array of parameters to the message
    • log

      public void log(int level, String message, Object[] params, boolean shouldTranslate)
      PUBLIC:

      Log a message. shouldTranslate determines if the message needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level
      message - the string message
      params - array of parameters to the message
      shouldTranslate - true if the message needs to be translated
    • log

      public void log(int level, String category, String message, Object[] params, boolean shouldTranslate)
      PUBLIC:

      Log a message. shouldTranslate determines if the message needs to be translated.

      Specified by:
      log in interface SessionLog
      Parameters:
      level - the log request level
      category - the log category
      message - the string message
      params - array of parameters to the message
      shouldTranslate - true if the message needs to be translated
    • log

      public abstract void log(SessionLogEntry sessionLogEntry)
      PUBLIC:

      Log a SessionLogEntry

      Specified by:
      log in interface SessionLog
      Parameters:
      sessionLogEntry - SessionLogEntry that holds all the information for an EclipseLink logging event
    • shouldPrintSession

      public boolean shouldPrintSession()
      By default the session (and its connection is available) are printed, this can be turned off.
      Specified by:
      shouldPrintSession in interface SessionLog
    • setShouldPrintSession

      public void setShouldPrintSession(boolean shouldPrintSession)
      By default the session (and its connection is available) are printed, this can be turned off.
      Specified by:
      setShouldPrintSession in interface SessionLog
    • shouldPrintConnection

      public boolean shouldPrintConnection()
      By default the connection is printed, this can be turned off.
      Specified by:
      shouldPrintConnection in interface SessionLog
    • setShouldPrintConnection

      public void setShouldPrintConnection(boolean shouldPrintConnection)
      By default the connection is printed, this can be turned off.
      Specified by:
      setShouldPrintConnection in interface SessionLog
    • shouldLogExceptionStackTrace

      public boolean shouldLogExceptionStackTrace()
      By default the stack is logged for FINER or less (finest). The logging of the stack can also be explicitly turned on or off.
      Specified by:
      shouldLogExceptionStackTrace in interface SessionLog
    • setShouldDisplayData

      public void setShouldDisplayData(Boolean shouldDisplayData)
      PUBLIC: Set whether bind parameters should be displayed when logging SQL.
      Specified by:
      setShouldDisplayData in interface SessionLog
    • setShouldLogExceptionStackTrace

      public void setShouldLogExceptionStackTrace(boolean shouldLogExceptionStackTrace)
      By default the stack is logged for FINER or less (finest). The logging of the stack can also be explicitly turned on or off.
      Specified by:
      setShouldLogExceptionStackTrace in interface SessionLog
    • shouldPrintDate

      public boolean shouldPrintDate()
      By default the date is always printed, but can be turned off.
      Specified by:
      shouldPrintDate in interface SessionLog
    • setShouldPrintDate

      public void setShouldPrintDate(boolean shouldPrintDate)
      By default the date is always printed, but can be turned off.
      Specified by:
      setShouldPrintDate in interface SessionLog
    • shouldPrintThread

      public boolean shouldPrintThread()
      By default the thread is logged for FINE or less (finer,etc.). The logging of the thread can also be explicitly turned on or off.
      Specified by:
      shouldPrintThread in interface SessionLog
    • setShouldPrintThread

      public void setShouldPrintThread(boolean shouldPrintThread)
      By default the thread is logged for FINE or less (finer,etc.). The logging of the thread can also be explicitly turned on or off.
      Specified by:
      setShouldPrintThread in interface SessionLog
    • getWriter

      public Writer getWriter()
      PUBLIC:

      Return the writer that will receive the formatted log entries.

      Specified by:
      getWriter in interface SessionLog
      Returns:
      the log writer
    • setWriter

      public void setWriter(Writer writer)
      PUBLIC:

      Set the writer that will receive the formatted log entries.

      Specified by:
      setWriter in interface SessionLog
      Parameters:
      writer - the log writer
    • setWriter

      public void setWriter(OutputStream outputstream)
      PUBLIC:

      Set the writer that will receive the formatted log entries.

      Parameters:
      outputstream - the log writer
    • getDateFormat

      public DateFormat getDateFormat()
      PUBLIC: Return the date format to be used when printing a log entry date.
      Returns:
      the date format
    • getDateString

      protected String getDateString(Date date)
      Return the specified date and/or time information in string. The format will be determined by the date format settings.
    • getSupplementDetailString

      protected String getSupplementDetailString(SessionLogEntry entry)
      Return the supplement detail information including date, session, thread, connection, source class name and source method name.
    • getSessionString

      protected String getSessionString(Session session)
      Return the current session including the type and id.
    • getConnectionString

      protected String getConnectionString(Accessor connection)
      Return the specified connection information.
    • getThreadString

      protected String getThreadString(Thread thread)
      Return the specified thread information.
    • printPrefixString

      protected void printPrefixString(int level, String category)
      Print the prefix string representing EclipseLink logging
    • setDateFormat

      public void setDateFormat(DateFormat dateFormat)
      PUBLIC: Set the date format to be used when printing a log entry date.

      Note: the JDK's java.text.SimpleDateFormat is NOT thread-safe.
      The user is strongly advised to consider using Apache Commons
      org.apache.commons.lang.time.FastDateFormat instead.

      Parameters:
      dateFormat - java.text.DateFormat
    • formatMessage

      protected String formatMessage(SessionLogEntry entry)
      Return the formatted message based on the information from the given SessionLogEntry. The message will either be translated and formatted or formatted only depending on if the shouldTranslate flag is set to true of false.
    • translateStringToLoggingLevel

      public static int translateStringToLoggingLevel(String loggingLevel)
      INTERNAL: Translate the string value of the log level to the constant value. If value is null or invalid use the default.
    • throwing

      public void throwing(Throwable throwable)
      PUBLIC:

      Log a throwable at FINER level.

      Specified by:
      throwing in interface SessionLog
      Parameters:
      throwable - a Throwable
    • severe

      public void severe(String message)
      PUBLIC:

      This method is called when a severe level message needs to be logged. The message will be translated

      Specified by:
      severe in interface SessionLog
      Parameters:
      message - the message key
    • warning

      public void warning(String message)
      PUBLIC:

      This method is called when a warning level message needs to be logged. The message will be translated

      Specified by:
      warning in interface SessionLog
      Parameters:
      message - the message key
    • info

      public void info(String message)
      PUBLIC:

      This method is called when a info level message needs to be logged. The message will be translated

      Specified by:
      info in interface SessionLog
      Parameters:
      message - the message key
    • config

      public void config(String message)
      PUBLIC:

      This method is called when a config level message needs to be logged. The message will be translated

      Specified by:
      config in interface SessionLog
      Parameters:
      message - the message key
    • fine

      public void fine(String message)
      PUBLIC:

      This method is called when a fine level message needs to be logged. The message will be translated

      Specified by:
      fine in interface SessionLog
      Parameters:
      message - the message key
    • finer

      public void finer(String message)
      PUBLIC:

      This method is called when a finer level message needs to be logged. The message will be translated

      Specified by:
      finer in interface SessionLog
      Parameters:
      message - the message key
    • finest

      public void finest(String message)
      PUBLIC:

      This method is called when a finest level message needs to be logged. The message will be translated

      Specified by:
      finest in interface SessionLog
      Parameters:
      message - the message key
    • logThrowable

      public void logThrowable(int level, Throwable throwable)
      PUBLIC:

      Log a throwable with level.

      Specified by:
      logThrowable in interface SessionLog
      Parameters:
      level - the log request level value
      throwable - a Throwable
    • logThrowable

      public void logThrowable(int level, String category, Throwable throwable)
      PUBLIC:

      Log a throwable with level.

      Specified by:
      logThrowable in interface SessionLog
      Parameters:
      level - the log request level value
      throwable - a Throwable
    • isOff

      public boolean isOff()
      INTERNAL: Check if the log level is set to off.
    • clone

      public Object clone()
      INTERNAL: Each session owns its own session log because session is stored in the session log
      Specified by:
      clone in interface SessionLog
      Overrides:
      clone in class Object
    • translateLoggingLevelToString

      public static String translateLoggingLevelToString(int loggingLevel)
      INTERNAL: Translate the string value of the log level to the constant value. If value is null or invalid use the default.