EclipseLink 2.2.0, build 'v20110202-r8913' API Reference

org.eclipse.persistence.logging
Class AbstractSessionLog

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

public abstract class AbstractSessionLog
extends java.lang.Object
implements SessionLog, java.lang.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:
SessionLog, SessionLogEntry, DefaultSessionLog, JavaLog

Field Summary
protected static java.lang.String CONFIG_PREFIX
          Represents prefix to logged config
protected static java.lang.String CONNECTION_STRING
          Connection string
protected static java.lang.String DATE_FORMAT_STR
           
protected  java.text.DateFormat dateFormat
          Format use to print the current date/time.
protected static SessionLog defaultLog
          Represents the singleton SessionLog
protected static java.lang.String FINE_PREFIX
          Represents prefix to logged fine
protected static java.lang.String FINER_PREFIX
          Represents prefix to logged finer
protected static java.lang.String FINEST_PREFIX
          Represents prefix to logged finest
protected static java.lang.String INFO_PREFIX
          Represents prefix to logged info
protected  int level
          Represents the log level
protected  Session session
          Represents the session that owns this SessionLog
protected static java.lang.String SEVERE_PREFIX
          Represents prefix to logged severe
protected  java.lang.Boolean shouldDisplayData
          Used to determine if bingdparameters should be logged or hidden.
protected  java.lang.Boolean shouldLogExceptionStackTrace
          Allows the printing of the stack to be explicitly disabled/enabled.
protected  java.lang.Boolean shouldPrintConnection
          Allows the printing of the connection to be explicitly disabled/enabled.
protected  java.lang.Boolean shouldPrintDate
          Allows the printing of the date to be explicitly disabled/enabled.
protected  java.lang.Boolean shouldPrintSession
          Allows the printing of the session to be explicitly disabled/enabled.
protected  java.lang.Boolean shouldPrintThread
          Allows the printing of the thread to be explicitly disabled/enabled.
protected static java.lang.String THREAD_STRING
          Thread string
protected static java.lang.String TOPLINK_PREFIX
          Cached TopLink prefix string.
protected static java.lang.String WARNING_PREFIX
          Represents prefix to logged warning
protected  java.io.Writer writer
          Represents the writer that will receive the formatted log entries
 
Fields inherited from interface org.eclipse.persistence.logging.SessionLog
ALL, ALL_LABEL, CACHE, CONFIG, CONFIG_LABEL, CONNECTION, DMS, EJB, EJB_OR_METADATA, EVENT, FINE, FINE_LABEL, FINER, FINER_LABEL, FINEST, FINEST_LABEL, INFO, INFO_LABEL, loggerCatagories, METAMODEL, OFF, OFF_LABEL, PROPAGATION, PROPERTIES, QUERY, SEQUENCING, SERVER, SEVERE, SEVERE_LABEL, SQL, TRANSACTION, WARNING, WARNING_LABEL, WEAVER
 
Constructor Summary
AbstractSessionLog()
          PUBLIC: Create a new AbstractSessionLog
 
Method Summary
 java.lang.Object clone()
          INTERNAL: Each session owns its own session log because session is stored in the session log
 void config(java.lang.String message)
          PUBLIC: This method is called when a config level message needs to be logged.
 void fine(java.lang.String message)
          PUBLIC: This method is called when a fine level message needs to be logged.
 void finer(java.lang.String message)
          PUBLIC: This method is called when a finer level message needs to be logged.
 void finest(java.lang.String message)
          PUBLIC: This method is called when a finest level message needs to be logged.
protected  java.lang.String formatMessage(SessionLogEntry entry)
          Return the formatted message based on the information from the given SessionLogEntry.
protected  java.lang.String getConnectionString(org.eclipse.persistence.internal.databaseaccess.Accessor connection)
          Return the specified connection information.
 java.text.DateFormat getDateFormat()
          PUBLIC: Return the date format to be used when printing a log entry date.
protected  java.lang.String getDateString(java.util.Date date)
          Return the specified date and/or time information in string.
static int getDefaultLoggingLevel()
          Return the system default log level.
 int getLevel()
          PUBLIC: Return the log level.
 int getLevel(java.lang.String category)
          PUBLIC: Return the log level for the category name space.
 java.lang.String getLevelString()
          PUBLIC: Return the log level as a string value.
static SessionLog getLog()
          PUBLIC: Return the singleton SessionLog.
 Session getSession()
          PUBLIC: Get the session.
protected  java.lang.String getSessionString(Session session)
          Return the current session including the type and id.
protected  java.lang.String getSupplementDetailString(SessionLogEntry entry)
          Return the supplement detail information including date, session, thread and connection.
protected  java.lang.String getThreadString(java.lang.Thread thread)
          Return the specified thread information.
 java.io.Writer getWriter()
          PUBLIC: Return the writer that will receive the formatted log entries.
 void info(java.lang.String message)
          PUBLIC: This method is called when a info level message needs to be logged.
 boolean isOff()
          INTERNAL: Check if the log level is set to off.
 void log(int level, java.lang.String message)
          PUBLIC: Log a message that does not need to be translated.
 void log(int level, java.lang.String message, java.lang.Object param)
          PUBLIC: Log a message with one parameter that needs to be translated.
 void log(int level, java.lang.String message, java.lang.Object[] params)
          PUBLIC: Log a message with an array of parameters that needs to be translated.
 void log(int level, java.lang.String message, java.lang.Object[] params, boolean shouldTranslate)
          PUBLIC: Log a message.
 void log(int level, java.lang.String message, java.lang.Object param1, java.lang.Object param2)
          PUBLIC: Log a message with two parameters that needs to be translated.
 void log(int level, java.lang.String message, java.lang.Object param1, java.lang.Object param2, java.lang.Object param3)
          PUBLIC: Log a message with three parameters that needs to be translated.
 void log(int level, java.lang.String message, java.lang.Object param1, java.lang.Object param2, java.lang.Object param3, java.lang.Object param4)
          PUBLIC: Log a message with four parameters that needs to be translated.
abstract  void log(SessionLogEntry sessionLogEntry)
          PUBLIC: Log a SessionLogEntry
 void logThrowable(int level, java.lang.Throwable throwable)
          PUBLIC: Log a throwable with level.
protected  void printPrefixString(int level)
          Print the prefix string representing EclipseLink logging
 void setDateFormat(java.text.DateFormat dateFormat)
          PUBLIC: Set the date format to be used when printing a log entry date.
 void setLevel(int level)
          PUBLIC: Set the log level.
 void setLevel(int level, java.lang.String category)
          PUBLIC: Set the log level for the category name space.
static void setLog(SessionLog sessionLog)
          PUBLIC: Set the singleton SessionLog.
 void setSession(Session session)
          PUBLIC: Set the session.
 void setShouldDisplayData(java.lang.Boolean shouldDisplayData)
          PUBLIC: Set whether bind parameters should be displayed when logging SQL.
 void setShouldLogExceptionStackTrace(boolean shouldLogExceptionStackTrace)
          By default the stack is logged for FINER or less (finest).
 void setShouldPrintConnection(boolean shouldPrintConnection)
          By default the connection is printed, this can be turned off.
 void setShouldPrintDate(boolean shouldPrintDate)
          By default the date is always printed, but can be turned off.
 void setShouldPrintSession(boolean shouldPrintSession)
          By default the session (and its connection is available) are printed, this can be turned off.
 void setShouldPrintThread(boolean shouldPrintThread)
          By default the thread is logged for FINE or less (finer,etc.).
 void setWriter(java.io.OutputStream outputstream)
          PUBLIC: Set the writer that will receive the formatted log entries.
 void setWriter(java.io.Writer writer)
          PUBLIC: Set the writer that will receive the formatted log entries.
 void severe(java.lang.String message)
          PUBLIC: This method is called when a severe level message needs to be logged.
 boolean shouldDisplayData()
          PUBLIC: Return true if SQL logging should log visible bind parameters.
 boolean shouldLog(int level)
          PUBLIC: Check if a message of the given level would actually be logged.
 boolean shouldLog(int level, java.lang.String category)
          PUBLIC: Check if a message of the given level would actually be logged for the category name space. !
 boolean shouldLogExceptionStackTrace()
          By default the stack is logged for FINER or less (finest).
 boolean shouldPrintConnection()
          By default the connection is printed, this can be turned off.
 boolean shouldPrintDate()
          By default the date is always printed, but can be turned off.
 boolean shouldPrintSession()
          By default the session (and its connection is available) are printed, this can be turned off.
 boolean shouldPrintThread()
          By default the thread is logged for FINE or less (finer,etc.).
 void throwing(java.lang.Throwable throwable)
          PUBLIC: Log a throwable at FINER level.
static java.lang.String translateLoggingLevelToString(int loggingLevel)
          INTERNAL: Translate the string value of the log level to the constant value.
static int translateStringToLoggingLevel(java.lang.String loggingLevel)
          INTERNAL: Translate the string value of the log level to the constant value.
 void warning(java.lang.String message)
          PUBLIC: This method is called when a warning level message needs to be logged.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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 java.lang.String SEVERE_PREFIX
Represents prefix to logged severe


WARNING_PREFIX

protected static java.lang.String WARNING_PREFIX
Represents prefix to logged warning


INFO_PREFIX

protected static java.lang.String INFO_PREFIX
Represents prefix to logged info


CONFIG_PREFIX

protected static java.lang.String CONFIG_PREFIX
Represents prefix to logged config


FINE_PREFIX

protected static java.lang.String FINE_PREFIX
Represents prefix to logged fine


FINER_PREFIX

protected static java.lang.String FINER_PREFIX
Represents prefix to logged finer


FINEST_PREFIX

protected static java.lang.String FINEST_PREFIX
Represents prefix to logged finest


TOPLINK_PREFIX

protected static java.lang.String TOPLINK_PREFIX
Cached TopLink prefix string.


CONNECTION_STRING

protected static final java.lang.String CONNECTION_STRING
Connection string

See Also:
Constant Field Values

THREAD_STRING

protected static final java.lang.String THREAD_STRING
Thread string

See Also:
Constant Field Values

writer

protected java.io.Writer writer
Represents the writer that will receive the formatted log entries


DATE_FORMAT_STR

protected static java.lang.String DATE_FORMAT_STR

dateFormat

protected java.text.DateFormat dateFormat
Format use to print the current date/time.


shouldLogExceptionStackTrace

protected java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.Boolean shouldDisplayData
Used to determine if bingdparameters should be logged or hidden.

Constructor Detail

AbstractSessionLog

public AbstractSessionLog()
PUBLIC: Create a new AbstractSessionLog

Method Detail

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 java.lang.String getLevelString()
PUBLIC:

Return the log level as a string value.

Specified by:
getLevelString in interface SessionLog

getLevel

public int getLevel(java.lang.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,
                     java.lang.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,
                         java.lang.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,
                java.lang.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,
                java.lang.String message,
                java.lang.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,
                java.lang.String message,
                java.lang.Object param1,
                java.lang.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,
                java.lang.String message,
                java.lang.Object param1,
                java.lang.Object param2,
                java.lang.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,
                java.lang.String message,
                java.lang.Object param1,
                java.lang.Object param2,
                java.lang.Object param3,
                java.lang.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,
                java.lang.String message,
                java.lang.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,
                java.lang.String message,
                java.lang.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 abstract void log(SessionLogEntry sessionLogEntry)
PUBLIC:

Log a SessionLogEntry

Specified by:
log in interface SessionLog
Parameters:
entry - 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(java.lang.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 java.io.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(java.io.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(java.io.OutputStream outputstream)
PUBLIC:

Set the writer that will receive the formatted log entries.

Parameters:
OutputStream - the log writer


getDateFormat

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

Returns:
the date format

getDateString

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


getSupplementDetailString

protected java.lang.String getSupplementDetailString(SessionLogEntry entry)
Return the supplement detail information including date, session, thread and connection.


getSessionString

protected java.lang.String getSessionString(Session session)
Return the current session including the type and id.


getConnectionString

protected java.lang.String getConnectionString(org.eclipse.persistence.internal.databaseaccess.Accessor connection)
Return the specified connection information.


getThreadString

protected java.lang.String getThreadString(java.lang.Thread thread)
Return the specified thread information.


printPrefixString

protected void printPrefixString(int level)
Print the prefix string representing EclipseLink logging


setDateFormat

public void setDateFormat(java.text.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 java.lang.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(java.lang.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(java.lang.Throwable throwable)
PUBLIC:

Log a throwable at FINER level.

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


severe

public void severe(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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(java.lang.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,
                         java.lang.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 java.lang.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 java.lang.Object

translateLoggingLevelToString

public static java.lang.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.


EclipseLink 2.2.0, build 'v20110202-r8913' API Reference