Are all of the new-with-1.3 appenders and receivers moved over?  UDP and 
multicast appenders & receivers, xmlsocketreceiver, etc.

Also, if Paul or Curt would provide instructions on how to set up what you guys 
have done, I'd love to take a crack at it.



Scott Deboy
COMOTIV SYSTEMS
111 SW Columbia Street Ste. 950
Portland, OR  97201

Telephone:      503.224.7496
Cell:           503.997.1367
Fax:            503.222.0185

[EMAIL PROTECTED]

www.comotivsystems.com



-----Original Message-----
From: Paul Smith [mailto:[EMAIL PROTECTED]
Sent: Wed 4/25/2007 5:55 PM
To: Log4J Developers List
Subject: Re: Chainsaw & log4j 1.2 status
 

On 22/04/2007, at 3:21 PM, Paul Smith wrote:

>>
>> I've committed a PluginConfigurator to both the component and  
>> log4j 1.3 and copied the LoggerRepositoryExImpl over to log4j 1.3.
>>
>
> Thanks, I'll give that a crack and see what we get.


Success!

With the below diff, I am able to use the same configuration file  
we'd been using internally to attach to our QA box via  
SocketHubAppender/Receiver.  This is using the latest 1.2.15 +  
component+receiver+expression-filter modules.

On top of that, I see lovely juicy MDC values appearing as new  
columns in Chainsaw.  w00t.

Scott, what else do you think we need to consider before deciding on  
whether we bind Chainsaw to log4j 1.2 permanently (if at all)?

Index: src/java/org/apache/log4j/chainsaw/LogUI.java
===================================================================
--- src/java/org/apache/log4j/chainsaw/LogUI.java       (revision  
532553)
+++ src/java/org/apache/log4j/chainsaw/LogUI.java       (working copy)
@@ -53,6 +53,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.BorderFactory;
@@ -83,10 +84,12 @@
import javax.swing.event.EventListenerList;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
+
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
+import org.apache.log4j.LoggerRepositoryExImpl;
import org.apache.log4j.chainsaw.dnd.FileDnDTarget;
import org.apache.log4j.chainsaw.help.HelpManager;
import org.apache.log4j.chainsaw.help.Tutorial;
@@ -104,7 +107,6 @@
import org.apache.log4j.chainsaw.receivers.ReceiversPanel;
import org.apache.log4j.chainsaw.version.VersionManager;
import org.apache.log4j.helpers.Constants;
-import org.apache.log4j.joran.JoranConfigurator;
import org.apache.log4j.net.SocketNodeEventListener;
import org.apache.log4j.plugins.Plugin;
import org.apache.log4j.plugins.PluginEvent;
@@ -114,9 +116,12 @@
import org.apache.log4j.rule.ExpressionRule;
import org.apache.log4j.rule.Rule;
import org.apache.log4j.spi.Decoder;
-import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.spi.LoggerRepository;
import org.apache.log4j.spi.LoggerRepositoryEx;
+import org.apache.log4j.spi.LoggingEvent;
+import org.apache.log4j.spi.RepositorySelector;
+import org.apache.log4j.xml.DOMConfigurator;
+import org.apache.log4j.xml.PluginConfigurator;
import org.apache.log4j.xml.XMLDecoder;
@@ -190,6 +195,10 @@
     */
    private EventListenerList shutdownListenerList = new  
EventListenerList();
    private WelcomePanel welcomePanel;
+
+  private static final Object repositorySelectorGuard = new Object();
+  private static final LoggerRepositoryExImpl repositoryExImpl = new  
LoggerRepositoryExImpl(LogManager.getLoggerRepository());
+
    private PluginRegistry pluginRegistry;
    /**
@@ -245,9 +254,19 @@
     * @param args
     */
    public static void main(String[] args) {
+
        if(OSXIntegration.IS_OSX) {
            System.setProperty("apple.laf.useScreenMenuBar", "true");
        }
+
+
+    LogManager.setRepositorySelector(new RepositorySelector() {
+
+        public LoggerRepository getLoggerRepository() {
+            return repositoryExImpl;
+        }}, repositorySelectorGuard);
+
+
      ApplicationPreferenceModel model = new  
ApplicationPreferenceModel();
      SettingsManager.getInstance().configure(new  
ApplicationPreferenceModelSaver(model));
@@ -298,6 +317,7 @@
        showSplash(logUI);
      }
      logUI.cyclicBufferSize = model.getCyclicBufferSize();
+    logUI.pluginRegistry = repositoryExImpl.getPluginRegistry();
      logUI.handler = new ChainsawAppenderHandler();
      logUI.handler.addEventBatchListener(logUI.new  
NewTabEventBatchReceiver());
@@ -1889,8 +1909,7 @@
              try {
                // we temporarily swap the TCCL so that plugins can  
find resources
                Thread.currentThread().setContextClassLoader 
(classLoader);
-              JoranConfigurator jc = new JoranConfigurator();
-              jc.doConfigure(url, LogManager.getLoggerRepository());
+              PluginConfigurator.configure(url);
              }finally{
                  // now switch it back...
                  Thread.currentThread().setContextClassLoader 
(previousTCCL);
Index: src/java/org/apache/log4j/chainsaw/layout/EventDetailLayout.java
===================================================================
--- src/java/org/apache/log4j/chainsaw/layout/ 
EventDetailLayout.java    (revision 532553)
+++ src/java/org/apache/log4j/chainsaw/layout/ 
EventDetailLayout.java    (working copy)
@@ -191,16 +191,15 @@
          li = formatLocationInfo(event);
      }
      Hashtable properties = formatProperties(event);
-    LoggingEvent copy = new LoggingEvent();
-    copy.setLogger(logger);
-    copy.setTimeStamp(event.getTimeStamp());
-    copy.setLevel(event.getLevel());
-    copy.setThreadName(threadName);
-    copy.setMessage(msg);
-    copy.setNDC(ndc);
-    copy.setThrowableInformation(event.getThrowableInformation());
-    copy.setLocationInformation(li);
-    copy.setProperties(properties);
+    LoggingEvent copy = new LoggingEvent(null,
+          logger, event.getTimeStamp(),
+          event.getLevel(),
+          msg,
+          threadName,
+          event.getThrowableInformation(),
+          ndc,
+          li,
+          properties);

      return copy;
    }
Index: src/java/org/apache/log4j/chainsaw/layout/LayoutEditorPane.java
===================================================================
--- src/java/org/apache/log4j/chainsaw/layout/ 
LayoutEditorPane.java     (revision 532553)
+++ src/java/org/apache/log4j/chainsaw/layout/ 
LayoutEditorPane.java     (working copy)
@@ -182,16 +182,16 @@
      ThrowableInformation tsr = new ThrowableInformation(new  
Exception());
-    event = new LoggingEvent();
-    event.setLogger(Logger.getLogger("com.mycompany.mylogger"));
-    event.setTimeStamp(new Date().getTime());
-    event.setLevel(org.apache.log4j.Level.DEBUG);
-    event.setThreadName("Thread-1");
-    event.setMessage("The quick brown fox jumped over the lazy dog");
-    event.setNDC("NDC string");
-    event.setThrowableInformation(tsr);
-    event.setLocationInformation(li);
-    event.setProperties(hashTable);
+    event = new LoggingEvent("org.apache.log4j.Logger",
+           Logger.getLogger("com.mycompany.mylogger"),
+               new Date().getTime(),
+               org.apache.log4j.Level.DEBUG,
+               "The quick brown fox jumped over the lazy dog",
+               "Thread-1",
+               tsr,
+               "NDC string",
+               li,
+               hashTable);

    }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


<<winmail.dat>>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to