Commit Graph
12 Commits
Author SHA1 Message Date
Craig R. McClanahan 91d58c6367 Add a new factory base class (LogFactory) and corresponding implementation
(LogFactoryImpl) that is based on the principles of the JAXP API's approach
to discovering SAXParserFactory and DocumentBuilderFactory instances.  It
addresses the technical concerns that Costin brought up in response to the
original Commons Logging 1.0 vote.

The primary new features:

* Applications can select their own LogFactory implementations, not
  just their own Log implementations.  The default LogFactoryImpl
  uses the same algorithm currently included in LogSource.

* The LogFactory implementation class can be specified by either a
  system property (org.apache.commons.logging.LogFactory), or by a
  corresponding property in a "commons-logging.properties" file found
  somewhere in the class path.

* LogFactory implementations possess optional configuration attributes,
  which are preloaded from the "commons-logging.properties" file if it
  is found.  These can be used by the factory to customize its own
  behavior as needed.

* LogFactory and Log implementation classes are loaded from the
  thread context class loader (if it is set) in a JDK 1.2 or later
  environment.  Hwoever, the entire API and default implementation should
  still work on a JDK 1.1 system.

* A specialized exception (LogConfigurationException) is thrown for things
  like missing LogFactory or Log implementation clases.  This class
  extends RuntimeException, so you normally don't have to put everything
  in try/catch blocks unless you care about dealing with this in a
  special way.

For applications currently using the pre-release version of the API, this
will typically mean replacing calls like this:

  Log log = LogSource.getInstance("foo");

with calls like this:

  Log log = LogFactory.newFactory().getInstance("foo");

unless you want to take advantage of the new capabilities.

If this factory approach is accepted, I propose that we take the actions:

* Deprecate LogSource (but leave it there for now, to assist existing
  applications in their transition)

* Consider adding a setLogFactory() method to the Log interface -- and
  the existing implementation classes -- to give them easy access to the
  configuration attributes associated with the factory.

* Add unit tests for the new code (it's not really been tested yet).

* Propose the revised APIs as Commons-Logging 1.0 so that apps waiting
  for a final release can know what API to depend on.

Follow-up technical discussions on this proposal should take place on
COMMONS-DEV.  (If you want to argue about who can vote for what, please
start your own thread someplace else so we can get some work done :-).


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138856 13f79535-47bb-0310-9956-ffa450edef68
2002-02-13 02:18:11 +00:00
Craig R. McClanahan ed81b5ffec Correct the author attributions on the JDK 1.4 logging package wrapper.
The code that this was based on was posted by Paulo Gaspar with a Java
package name of "krankikom.log.*" -- not exactly rousing evidence of
the fact that it came from Avalon.

Finally found the old mail message, and it did have Berin and Peter
as authors.  Sure wish Paulo wouldn't arbitrarily change package names ...


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138848 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 03:56:26 +00:00
Craig R. McClanahan 97142db2c2 Add logkit.jar to "test.classpath" as well as "compile.classpath".
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138839 13f79535-47bb-0310-9956-ffa450edef68
2002-01-22 01:33:45 +00:00
Craig R. McClanahan dabce5cf42 Add convenience "all" and "off" levels to SimpleLog.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138838 13f79535-47bb-0310-9956-ffa450edef68
2002-01-21 21:19:38 +00:00
Craig R. McClanahan fef8c7dd0a Update hyperlinks in these two files.
Submitted by:  Eric Dobbs <eric@dobbse.net>


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138837 13f79535-47bb-0310-9956-ffa450edef68
2002-01-20 04:48:27 +00:00
Craig R. McClanahan b39b2191aa Implement the agreed-upon API changes for the commons-logging package.
If the changes are too radical, I tagged things with "before_clean_up" to make
it easy to go back.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138835 13f79535-47bb-0310-9956-ffa450edef68
2002-01-17 01:47:49 +00:00
Craig R. McClanahan 36652638b4 Make LogSource more applet-friendly by swallowing any security exception
thrown when System.getProperty() is called.

Submitted by:  Anthony Martin <Anthony@TRAMS.com>


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138833 13f79535-47bb-0310-9956-ffa450edef68
2002-01-16 00:54:51 +00:00
Craig R. McClanahan 7ed3bbc6ee A few more tweaks to the STATUS file, add the MANIFEST.MF file for the
META-INF directory of the JAR file.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138832 13f79535-47bb-0310-9956-ffa450edef68
2002-01-08 22:55:39 +00:00
Craig R. McClanahan af62db1c56 Add a new Log implementation for JDK 1.4 (or later) logging.
Default behavior of LogSource.getInstance() is now:
* If Log4J is available, return an instance of Log4JCategoryLog
* If JDK 1.4 is available, return an instance of Jdk14Logger
* Otherwise, return an instance of NoOpLogger

As before, this default behavior can be overridden with a system
property, or by calling LogSource.setLogImplementation(), as described
in the package Javadocs.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138829 13f79535-47bb-0310-9956-ffa450edef68
2002-01-05 22:40:40 +00:00
Craig R. McClanahan 377da14ae0 Add "META-INF/LICENSE.txt" for digester and logging also.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138827 13f79535-47bb-0310-9956-ffa450edef68
2002-01-05 00:34:46 +00:00
Craig R. McClanahan 35ad9f42bd Forgot to clean up a Javadoc warning along the way.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138815 13f79535-47bb-0310-9956-ffa450edef68
2001-12-04 04:41:00 +00:00
Craig R. McClanahan ad40b8fdb4 Migrate the "logging" package from jakarta-commons-sandbox.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138814 13f79535-47bb-0310-9956-ffa450edef68
2001-12-04 04:28:03 +00:00