1
0
Commit Graph

170 Commits

Author SHA1 Message Date
Craig R. McClanahan
4487056de8 Remove forgotten debugging statement.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138880 13f79535-47bb-0310-9956-ffa450edef68
2002-03-15 22:57:36 +00:00
Robert Burrell Donkin
324af077b3 Corrected missing end tag in java doc comments
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138879 13f79535-47bb-0310-9956-ffa450edef68
2002-03-11 22:40:19 +00:00
Costin Manolache
27347eec03 Patch from Richard Sitze <rsitze at us.ibm.com>.
> I've updated the Log4JCategoryLog.java to use the Log4J method Category.log
> () which allows the fully qualified class name (FQCN) of  the user's logger
> class to be passed through into Log4J.  In this case the logger class FQCN
> will be "org.apache.commons.logging.impl.Log4JCategoryLog".  This allows
> Log4J to correctly identify the location in the code from which the logger
> is being called, if required.  Without this Log4J reports that the calling
> location is ALWAYS Log4JCategoryLog.java:132.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138878 13f79535-47bb-0310-9956-ffa450edef68
2002-03-07 22:32:47 +00:00
Craig R. McClanahan
740d078137 Make discovery process on LogSource compatible with that used by
LogFactory with respect to system properties.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138876 13f79535-47bb-0310-9956-ffa450edef68
2002-03-04 00:41:37 +00:00
Craig R. McClanahan
5f390b02fc When selecting the default logging implementation on a 1.4 system, ensure
that the commons-logging wrapper is also available before selecting it.
This avoids problems when using a copy of commons-logging.jar compiled on
a 1.3 system (and therefore missing the wrappe class) when executing on a
1.4 system.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138875 13f79535-47bb-0310-9956-ffa450edef68
2002-02-27 18:01:41 +00:00
Costin Manolache
078804d827 Deal with the posiblity that a commons-logging is loaded in
a loader, and the thread loader is set to point to a different
loader that doesn't include logging ( or to a wrong value ).

This happens when logging is used in certain container components,
where the thread loader will point to an app that may not
have/use logging.

XXX What's the right order ? From a 'feature' point of view,
it's better to try the thread loader first, so apps can
override the default. From a security point of view,
we should try the Class.forName() first, i.e. whatever
is loaded in the parent loader.

The current fix leaves the original order ( with thread loader
used if available ).


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138874 13f79535-47bb-0310-9956-ffa450edef68
2002-02-26 19:00:27 +00:00
James Strachan
18a4e8fa33 Added catch of security exceptions which are thrown if using commons-logging inside a container, such as the J2EE SDK server.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138873 13f79535-47bb-0310-9956-ffa450edef68
2002-02-26 04:06:22 +00:00
Craig R. McClanahan
dee096a758 Reset version number for development. Update copyright year (so that
it will be right the next time).


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138872 13f79535-47bb-0310-9956-ffa450edef68
2002-02-20 23:02:01 +00:00
Craig R. McClanahan
a2abbb8b5c Update version number for release build.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138870 13f79535-47bb-0310-9956-ffa450edef68
2002-02-20 22:07:04 +00:00
Costin Manolache
accadb23ed Log to stderr.
A bit of change in reading the properties - I spent some time trying to
understand what was the original intention, it was quite tricky. If the
property is not set, the old code would have defaulted everything to
true.

Added a bit of code to display only the last component of the log name,
logs without log name are hard to trace back to the source, and the full
name can make things hard to read ( at least that's my experience so
far ).

Of course, feel free to change back, I'm just trying to get things
a bit easier to use 'out of box', config can override anything.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138868 13f79535-47bb-0310-9956-ffa450edef68
2002-02-15 05:46:36 +00:00
Costin Manolache
f7489ad021 Add a mechanism to use a proxy. The default impl will first look for
a logger package, and preferably use a specialized factory, which
can provide better integration with the real logger.

The introspection is ok, but it's limited and complex.

Also, switch to SimpleLog by default - which is almost the same as
using System.err.println(). If common logging requires the user to set
properties and configurations to get the same behavior as System.err(),
why would anyone use it ?


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138867 13f79535-47bb-0310-9956-ffa450edef68
2002-02-15 05:42:35 +00:00
Costin Manolache
a42b6b9bd6 Add the second constructor to be used with Log4jFactory.
Make it final ( so the indirection can be optimized by jits )


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138866 13f79535-47bb-0310-9956-ffa450edef68
2002-02-15 03:54:19 +00:00
Costin Manolache
377a98ff3b Added a log4j specific factory. It's cleaner and goes directly
to the logger impl, without introspection. The factory can be extended
to take advantage of other log4j features ( it calls getInstance(Class)
direclty for example ) to integrate better.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138865 13f79535-47bb-0310-9956-ffa450edef68
2002-02-15 03:53:39 +00:00
Craig R. McClanahan
aa4b2e1a80 Update the javadocs package description to reflect the new LogFactory
capabilities.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138864 13f79535-47bb-0310-9956-ffa450edef68
2002-02-15 01:59:48 +00:00
Costin Manolache
7bf2ea493d Include the classpath in the available check.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138863 13f79535-47bb-0310-9956-ffa450edef68
2002-02-14 22:00:34 +00:00
Costin Manolache
6f50fad399 Add the standard ( ? ) JDK1.3 'service provider' mechanism. It's usually better
to use the standards ( if it makes sense ), and that's something that
works well enough ( crimson, xerces, xalan, saxon, etc).

Changed the code that deals with 'properties'-based setup. The propertis
will be set on the factory regardless of the discovery mechanism.
This may be arguable, but at least it's symetrical and permits the
application to pass the information to the logger implementation in
all cases. Given that the properties are read by the class loader,
each application can have it's own settings  (even if
the admin sets a JVM-wide default by using a system property ).


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138862 13f79535-47bb-0310-9956-ffa450edef68
2002-02-14 21:09:19 +00:00
Costin Manolache
2ffc19f7df Fix conditional compilation. The official distribution must include support
for all loggers, for development it should be enough to have one.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138861 13f79535-47bb-0310-9956-ffa450edef68
2002-02-14 21:04:18 +00:00
Costin Manolache
c72b5cc3a1 Added myself to the status.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138860 13f79535-47bb-0310-9956-ffa450edef68
2002-02-14 21:03:11 +00:00
Craig R. McClanahan
87cfde50b6 Fix the implementation in LogFactory and LogFactoryImpl so that it actually
works as documented.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138859 13f79535-47bb-0310-9956-ffa450edef68
2002-02-14 03:48:44 +00:00
Craig R. McClanahan
6a315e28ed Improvements to the new LogFactory APIs, based on feedback from Costin and
Jon plus some additional thought about using it in a multi-class-loader
environment (like Tomcat):

* Changed newFactory() to getFactory(), and implemented a cache of
  previously created factory instances (one per class loader).  This
  avoids potentially expensive and redundant discovery operations.

* Added convenient static getLog() method so a typical application
  component can initialize it's Log instance like this:

    Log log = LogFactory.getLog("com.mycompany.mypackage.MyClass");

* Added variants of getInstance() and getLog() that take a Class
  parameter instead of a String.  LogSource had this convenience
  feature, and there's no reason not to keep it.

* Added release() and releaseAll() methods to instruct the factory
  instances to release any cached references to other LogFactory
  or Log instances.  This is important, for example, if you put
  commons-logging.jar in Tomcat's shared "lib" directory, and then
  use the application reload facility.  The references maintained
  here would otherwise prevent garbage collection of the old
  webapp class loader once a reload takes place.

* Added a note on getInstance() that you can make no assumptions
  about whether or not the actual Log instance you get back is
  shared or not.  The actual sharability is a feature of the
  LogFactory implementation you are using, and what kind of a
  class loader environment you ae installing.

* Deprecated LogSource, but left it there to ease transition of
  existing code using it.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138858 13f79535-47bb-0310-9956-ffa450edef68
2002-02-14 00:19:03 +00:00
Craig R. McClanahan
753843f275 Forgot to commit the new exception class.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138857 13f79535-47bb-0310-9956-ffa450edef68
2002-02-13 02:18:30 +00:00
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
Scott Sanders
6b20d69b8e Update to reflect the move of the JDK14Logger class
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138855 13f79535-47bb-0310-9956-ffa450edef68
2002-02-03 01:44:03 +00:00
Scott Sanders
14c7f711e3 Removed impl classes as they have moved to impl now
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138854 13f79535-47bb-0310-9956-ffa450edef68
2002-02-03 01:33:27 +00:00
Scott Sanders
644168defb New import because of move
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138853 13f79535-47bb-0310-9956-ffa450edef68
2002-02-03 01:31:54 +00:00
Scott Sanders
9a529044cb Moved implementation classes to impl package, as per
Costin M.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138852 13f79535-47bb-0310-9956-ffa450edef68
2002-02-03 01:31:29 +00:00
Scott Sanders
c0cc00947a Use Hashtable instead of HashMap, for JDK 1.1
compatibility, and to solve sync issues


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138851 13f79535-47bb-0310-9956-ffa450edef68
2002-02-03 01:28:00 +00:00
Scott Sanders
84958f29b7 Update to add a trace() level to the Log interface.
Currently uses debug() in Log4J and LogKit
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138850 13f79535-47bb-0310-9956-ffa450edef68
2002-01-31 00:14:31 +00:00
Peter Donald
8d3cf2e4ac *** empty log message ***
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138849 13f79535-47bb-0310-9956-ffa450edef68
2002-01-30 07:51:03 +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
Scott Sanders
50aeb810bf Updated JDK14Logger to use the FINE level instead of the FINEST level
for debug.  This way if commons-logging needs to define a lower level,
it will be able to do so.  I am thinking about this because JBoss has
a TRACE level below debug.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138847 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 20:48:10 +00:00
Scott Sanders
e4a89ea02f Release Notes for the release
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138846 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 20:31:04 +00:00
Scott Sanders
fddc5b95e0 Updated the STATUS file to add myself as a comitter and
to attribute Avalon and Log4J for the influence that they
had on the interface impls.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138845 13f79535-47bb-0310-9956-ffa450edef68
2002-01-29 20:30:34 +00:00
Scott Sanders
35be4f47a4 Update to remove unused try catch
PR:
Obtained from:
Submitted by:	Daniel Rall [dlr@finemaltcoding.com]
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138844 13f79535-47bb-0310-9956-ffa450edef68
2002-01-25 18:41:48 +00:00
Robert Burrell Donkin
7d2bb88e6c Improved java doc comments
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138843 13f79535-47bb-0310-9956-ffa450edef68
2002-01-24 19:02:35 +00:00
Robert Burrell Donkin
fec6a9f72b Improved java doc comments
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138842 13f79535-47bb-0310-9956-ffa450edef68
2002-01-24 18:29:36 +00:00
Robert Burrell Donkin
731ec59f35 Updated documentation to reflect new Log interface
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138841 13f79535-47bb-0310-9956-ffa450edef68
2002-01-23 20:14:30 +00:00
Robert Burrell Donkin
6aa9386d49 Updated package documentation to reflect latest Log interface
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138840 13f79535-47bb-0310-9956-ffa450edef68
2002-01-22 22:10:45 +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
Robert Burrell Donkin
7d84a88865 Removed AbstractLog and associated test case, removed log level constants from Log interface, added renamed level constants to SimpleLog and fixed SimpleLog configuration bug
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138836 13f79535-47bb-0310-9956-ffa450edef68
2002-01-17 22:55:43 +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
Robert Burrell Donkin
ea082c4cdc Added LogKitLogger documentation
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138831 13f79535-47bb-0310-9956-ffa450edef68
2002-01-08 21:35:10 +00:00
Robert Burrell Donkin
bac9c212f3 LogKit wrapper initial commit
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138830 13f79535-47bb-0310-9956-ffa450edef68
2002-01-07 23:06:10 +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
Robert Burrell Donkin
09277f80cb Added link to java doc comments (so that it's easier to find the method description)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138828 13f79535-47bb-0310-9956-ffa450edef68
2002-01-05 15:55:00 +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