throbber
2.3. Logging Framework
`
`Prev
`
`2.3. Logging Framework
`
`2.3. Logging Framework
`Chapter 2. Configuration Framework
`
`2.3.1. Disabling Logging
`2.3.2. Logging using Apache Log4J
`2.3.3. Logging using JDK 1.4 java.util.logging
`2.3.4. Logging using Simple Log
`2.3.5. Logging using a Custom Log
`
`Page 1 of 5
`
`Next
`
`Logging is very important for debugging and identifying performance hot spots in an application, as well as getting a sense of how Kodo operates. Using logging
`is essential for developing any persistent classes with custom object-relational mapping extensions, since observing the SQL that is generated will assist in
`quickly identify any misconfigurations in the JDO metadata file. Kodo provides a very flexible logging system that integrates with many existing runtime
`systems, such as application servers and servlet runners.
`
`Kodo JDO uses the Apache Jakarta Commons Logging thin library for issuing log messages. The Commons Logging libraries act as a wrapper around a number of
`popular logging APIs, including the Jakarta Log4J project, and the native java.util.logging package in JDK 1.4. If neither of these libraries are available, then
`logging will fall back to using a very simple console logging. The remainder of this section presumes that Log4J will be used for logging. For details on
`customization of the Commons project, or on details on any of the underlying logging packages, please see the appropriate project page.
`
`•
`
`•
`
`•
`
`Warning
`Logging can have a very serious performance impact on Kodo. Disable
`verbose logging (such as logging of SQL statements) before running any
`performance tests. It is advisable to limit or disable logging completely for a
`production system.
`Logging is done over a number of logging channels, each of which has a logging level, which controls the verbosity of log messages that are sent to the
`channel. Following is an overview of the logging channels that Kodo will use, with a summary of the different levels to which log messages will be sent.
`com.solarmetric.kodo.MetaData: Information about the parsing of JDO metadata will be sent to the trace level of this channel. Warnings
`about potential problems with metadata will be sent to the warn channel.
`com.solarmetric.kodo.Enhance: Messages issued by the JDO enhancer will be sent to this logger, on a veriety of channels.
`com.solarmetric.kodo.Runtime: General Kodo runtime messages will be sent to this channel.
`com.solarmetric.kodo.Configuration: Information about Kodo Configuration will be sent to this channel.
`com.solarmetric.kodo.Performance: Information about possible performance optimizations will be sent to the trace level of this channel.
`com.solarmetric.kodo.impl.jdbc.JDBC: JDBC connection information will be sent to this channel.
`com.solarmetric.kodo.impl.jdbc.SQL: This is the most common logging channel to use. Detailed information about the execution of SQL
`statements and connections will be sent to the trace channel. It is useful to enable this channel if you are curious about the exact SQL that
`Prev
`Up
`Next
`Kodo issues to the data store.
`2.2. Kodo JDO Properties
`Home
` Chapter 3. Creating Persistent Classes
`
`•
`
`•
`
`•
`
`•
`
`http://docs.oracle.com/cd/E13189_01/kodo/docs258/ref_guide_logging.html
`
`9/18/2015
`
`BLUE COAT SYSTEMS - Exhibit 1078 Page 1
`
`

`
`2.3. Logging Framework
`
`Page 2 of 5
`
`Note
`Verbose SQL information is sent to this channel only when using
`Kodo's own pooling DataSource implementation. When using a
`custom DataSource, consult the documentation for that DataSource
`for details on how to enable logging messages.
`
`•
`
`com.solarmetric.kodo.impl.jdbc.Schema: Details about the operation of the SchemaTool will be sent to this logging channel.
`
`2.3.1. Disabling Logging
`
`Disabling logging can be useful for performance analysis without any I/O overhead or to reduce verbosity at the console. To do this, set the
`org.apache.commons.logging.Log to org.apache.commons.logging.impl.NoOpLog. To do this via command line:
`
`java -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog mypkg.MyClass
`
`However, disabling logging permanently will cause all error messages to be consumed. So, we recommend using one of the more sophisticated mechanisms described
`below.
`
`Note
`Versions of the Apache Commons Logging prior to 1.0.3 ignore the
`org.apache.commons.logging.Log system property. To resolve this,
`upgrade to a more recent version of the logging APIs.
`
`2.3.2. Logging using Apache Log4J
`
`When Apache Log4J jars are present, the Commons Logging package will use it by default. In a standalone application, logging levels are controlled by a
`resource named log4j.properties, which should be available as a top-level resource (either at the top level of a jar file, or in the root of one of the CLASSPATH
`environment variable. When deploying to a web or EJB application server, Log4J configuration is often performed in a log4j.xml file instead of in a properties file.
`For further details on configuring Log4J, please see the Log4J Manual.
`Following are example log4j.properties files for configuring logging levels for Kodo.
`
`Example 2.4. Example log4j.properties file for moderately verbose logging
`log4j.rootCategory=WARN, console
`log4j.category.com.solarmetric.kodo.impl.jdbc.SQL=WARN, console
`log4j.category.com.solarmetric.kodo.impl.jdbc.JDBC=WARN, console
`log4j.category.com.solarmetric.kodo.impl.jdbc.Schema=INFO, console
`log4j.category.com.solarmetric.kodo.Performance=INFO, console
`log4j.category.com.solarmetric.kodo.MetaData=WARN, console
`log4j.category.com.solarmetric.kodo.Enhance=WARN, console
`log4j.category.com.solarmetric.kodo.Query=WARN, console
`log4j.category.com.solarmetric.kodo.Runtime=INFO, console
`log4j.appender.console=org.apache.log4j.ConsoleAppender
`
`Prev
`2.2. Kodo JDO Properties
`
`Example 2.5. Example log4j.properties file for disabled logging
`Up
`Next
`Home
` Chapter 3. Creating Persistent Classes
`
`http://docs.oracle.com/cd/E13189_01/kodo/docs258/ref_guide_logging.html
`
`9/18/2015
`
`BLUE COAT SYSTEMS - Exhibit 1078 Page 2
`
`

`
`2.3. Logging Framework
`
`Page 3 of 5
`
`log4j.rootCategory=ERROR, console
`log4j.category.com.solarmetric.kodo.impl.jdbc.SQL=ERROR, console
`log4j.category.com.solarmetric.kodo.impl.jdbc.JDBC=ERROR, console
`log4j.category.com.solarmetric.kodo.impl.jdbc.Schema=ERROR, console
`log4j.category.com.solarmetric.kodo.Performance=ERROR, console
`log4j.category.com.solarmetric.kodo.MetaData=ERROR, console
`log4j.category.com.solarmetric.kodo.Enhance=ERROR, console
`log4j.category.com.solarmetric.kodo.Query=ERROR, console
`log4j.category.com.solarmetric.kodo.Runtime=ERROR, console
`log4j.appender.console=org.apache.log4j.ConsoleAppender
`
`Example 2.6. Example log4j.properties file for debugging logging
`log4j.rootCategory=TRACE, console
`log4j.category.com.solarmetric.kodo.impl.jdbc.SQL=TRACE, console
`log4j.category.com.solarmetric.kodo.impl.jdbc.JDBC=TRACE, console
`log4j.category.com.solarmetric.kodo.impl.jdbc.Schema=TRACE, console
`log4j.category.com.solarmetric.kodo.Performance=TRACE, console
`log4j.category.com.solarmetric.kodo.MetaData=TRACE, console
`log4j.category.com.solarmetric.kodo.Enhance=TRACE, console
`log4j.category.com.solarmetric.kodo.Query=TRACE, console
`log4j.category.com.solarmetric.kodo.Runtime=TRACE, console
`log4j.appender.console=org.apache.log4j.ConsoleAppender
`
`2.3.3. Logging using JDK 1.4 java.util.logging
`
`When using JDK 1.4 or higher, the built-in logging package provided by the java.util.logging package will be used. For details on configuring the built-in logging
`system, please see the Java Logging Overview.
`By default, JDK 1.4's logging package looks in the JAVA_HOME/lib/logging.properties file for logging configuration. This can be overridden with the
`java.util.logging.config.file system property. E.g., to run using a custom logging.properties file, the following command could be issued: java
`-Djava.util.logging.config.file=mylogging.properties com.company.MyClass
`
`Example 2.7. Example logging.properties file
`# Specify the handlers to create in the root logger
`# (all loggers are children of the root logger)
`# The following creates two handlers
`handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler
`# Set the default logging level for the root logger
`.level=ALL
`# Set the default logging level for new ConsoleHandler instances
`java.util.logging.ConsoleHandler.level=INFO
`# Set the default logging level for new FileHandler instances
`java.util.logging.FileHandler.level=ALL
`Prev
`Up
`Next
`2.2. Kodo JDO Properties
`Home
` Chapter 3. Creating Persistent Classes
`
`http://docs.oracle.com/cd/E13189_01/kodo/docs258/ref_guide_logging.html
`
`9/18/2015
`
`BLUE COAT SYSTEMS - Exhibit 1078 Page 3
`
`

`
`2.3. Logging Framework
`
`Page 4 of 5
`
`# Set the default formatter for new ConsoleHandler instances
`java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
`# Set the default logging level for all Kodo logs to INFO
`com.solarmetric.kodo.impl.jdbc.SQL.level=INFO
`com.solarmetric.kodo.impl.jdbc.JDBC.level=INFO
`com.solarmetric.kodo.impl.jdbc.Schema.level=INFO
`com.solarmetric.kodo.Performance.level=INFO
`com.solarmetric.kodo.MetaData.level=INFO
`com.solarmetric.kodo.Enhance.level=INFO
`com.solarmetric.kodo.Query.level=INFO
`com.solarmetric.kodo.Runtime.level=INFO
`
`2.3.4. Logging using Simple Log
`
`When a version of Java lower than 1.4 is being used, and Log4J libraries are not located in the CLASSPATH, then the commons logging package will fall back to
`using its built-in simple logging system, using the class org.apache.commons.logging.impl.SimpleLog. This system is controlled by the properties in the
`simplelog.properties resource, or else by various system properties, as specified at the SimpleLog Javadoc.
`
`Example 2.8. Example simplelog.properties file
`# By default, we will log messages at "warn" or higher
`org.apache.commons.logging.simplelog.defaultlog=warn
`# formatting options
`org.apache.commons.logging.simplelog.showShortLogname=true
`org.apache.commons.logging.simplelog.showdatetime=true
`# Set the default logging level for all Kodo logs to "info"
`org.apache.commons.logging.simplelog.log.com.solarmetric.kodo.impl.jdbc.SQL=info
`org.apache.commons.logging.simplelog.log.com.solarmetric.kodo.impl.jdbc.JDBC=info
`org.apache.commons.logging.simplelog.log.com.solarmetric.kodo.impl.jdbc.Schema=info
`org.apache.commons.logging.simplelog.log.com.solarmetric.kodo.Performance=info
`org.apache.commons.logging.simplelog.log.com.solarmetric.kodo.MetaData=info
`org.apache.commons.logging.simplelog.log.com.solarmetric.kodo.Enhance=info
`org.apache.commons.logging.simplelog.log.com.solarmetric.kodo.Query=info
`org.apache.commons.logging.simplelog.log.com.solarmetric.kodo.Runtime=info
`
`2.3.5. Logging using a Custom Log
`
`If it is ever the case where none of the built-in logging packages are suitable for an application, the logging system can be configured to use a custom logging
`class. This can be used, for example, to integrate with a proprietary logging framework used by some applications servers, or for logging to a graphical
`component for GUI applications.
`
`the org.apache.commons.logging.LogFactory class, and setting
`implementation of
`logging can be accomplished by writing an
`Custom
`org.apache.commons.logging.LogFactory system property to contain the name of the custom class.
`
`the
`
`Prev
`2.2. Kodo JDO Properties
`
`Up
`Home
`
`Next
`Example 2.9. Example custom logging class
` Chapter 3. Creating Persistent Classes
`
`http://docs.oracle.com/cd/E13189_01/kodo/docs258/ref_guide_logging.html
`
`9/18/2015
`
`BLUE COAT SYSTEMS - Exhibit 1078 Page 4
`
`

`
`2.3. Logging Framework
`
`Page 5 of 5
`
`public class CustomLoggingExample
` extends org.apache.commons.logging.impl.LogFactoryImpl
`{
` public org.apache.commons.logging.Log getInstance (String name)
` {
` // return a simple extension of SimpleLog that will log
` // everything to the System.err stream.
` return new org.apache.commons.logging.impl.SimpleLog (name)
` {
` /**
` * In our example, all log levels are enabled.
` */
` protected boolean isLevelEnabled (int logLevel)
` {
` return true;
` }
` /**
` * Just send everything to System.err
` */
` protected void log (int type, Object message, Throwable t)
` {
` System.err.println ("CUSTOM_LOG: " + type + ": "
` + message + ": " + t);
` }
` };
` }
`}
`
`Prev
`2.2. Kodo JDO Properties
`
`Up
`Home
`
`Next
` Chapter 3. Creating Persistent Classes
`
`http://docs.oracle.com/cd/E13189_01/kodo/docs258/ref_guide_logging.html
`
`9/18/2015
`
`BLUE COAT SYSTEMS - Exhibit 1078 Page 5

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket