In preparation for the release of Logger 2.0.0 I’ve decided to write a few posts highlighting some of the new features.
In my previous post I covered how to set and unset session specific logging based on the Client Identifier. In this post I’ll cover some advanced options for this functionality. Before continuing, please be sure to read the previous post or else this won’t make sense.
In the previous post the demo code to set a session specific logging level only used two parameters: the logging level and the Client Identifier. In
logger.set_level they’re actually four parameters:
p_level: This is the level to set. If p_client_id is null then it will set the system level configuration in
The additional parameters are only valid if
p_client_id is defined.
p_client_id: If not null, will apply
p_level for the specific client_id only. If null then
p_level will be applied for the system level configuration.
p_include_call_stack: Determines if the call stack should be stored. If null then will use the default setting in
INCLUDE_CALL_STACK. Valid values are
p_client_id_expire_hours: Will end session specific logging after set hours. If not defined then the default setting will be used
PREF_BY_CLIENT_ID_EXPIRE_HOURS. Note that this will not be exact as a job is run hourly to clean up expired session specific logging that has expired for a given client_id. Instead of waiting for the job to clean up expired sessions you can explicitly unset them.
To view the system level settings you can use the
logger.status procedure. There was debate as to whether or not we include all the client_id settings in this procedure. In the end we did not include it list them in this procedure as the list may get very long. To view all the session specific logging configurations use the following query:
logger.set_level with a
client_idthat already exists in
logger_prefs_by_client_id it will update the values and update the expiry date (i.e. you extend the setting).