From log4net-dev-lpage@example.net Sun May 16 17:11:08 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 33905 invoked from network); 16 May 2004 17:11:08 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 16 May 2004 17:11:08 -0000 Received: (qmail 17791 invoked by uid 500); 16 May 2004 17:11:10 -0000 Delivered-To: lpage@example.net Received: (qmail 17746 invoked by uid 500); 16 May 2004 17:11:09 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 17709 invoked by uid 98); 16 May 2004 17:11:09 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.61805 secs); 16 May 2004 17:11:09 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.61805 secs) Received: from unknown (HELO mercury.neoworks.co.uk) (83.161.120.155) by hermes.apache.org with SMTP; 16 May 2004 17:11:08 -0000 Received: from titan.neoworks.co.uk (titan.neoworks.co.uk [83.161.120.155]) by mercury.neoworks.co.uk (8.12.8/8.12.8) with ESMTP id i4GHAvYA011273; Sun, 16 May 2004 18:10:57 +0100 Received: by titan.neoworks.co.uk with Internet Mail Service (5.5.2650.21) id <LA2A79HW>; Sun, 16 May 2004 18:10:56 +0100 Message-ID: <lpage@example.net> From: Nicko Cadell <lpage@example.net> To: "'Brian Nantz'" <lpage@example.net> Cc: "'lpage@example.net'" <lpage@example.net> Subject: RE: Log4Net Chapter Date: Sun, 16 May 2004 18:10:55 +0100 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Brian, > But as I was thinking recently I can up with an idea for > Log4NET. Has anyone started a Visual Studio.NET add-in for > Log4NET? It shouldn't be too hard. Just have a component > that integrates like a timer or validation control and some > properties on it for special configurations (i.e. Compact > Framework, public or private member and autochange detect > that puts the appropriate information into the > assemblyinfo.cs file.) Finally the best part would be a gui > configuration tool to write the configurations to the app.config file. Integration with VisualStudio sounds like a great idea. I like the ideas you have come up with, especially the gui configuration tool. That would work in many different scenarios. As a design time tool either integrated into VisualStudio or as a stand alone tool that allows the configuration file to be defined. It would also work as a runtime gui that could be embedded into an application to control the logging configuration of the running application (change log levels, appenders etc...) without restarting. > What do you think? I would be interested in doing a proof of > concept and helping out if you think the users would like it > and enough developers are willing to help. I think that users would really appreciate having such a tool and it would be great if you could produce an initial demo. I think that there are lots of issues to consider about how to make the editor extensible enough for 3rd party appenders etc... The model that VisualStudio uses to allow components to define their own configuration may be worth investigating. Cheers, Nicko From log4net-dev-lpage@example.net Sun May 16 21:04:51 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 12212 invoked from network); 16 May 2004 21:04:51 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 16 May 2004 21:04:51 -0000 Received: (qmail 15247 invoked by uid 500); 16 May 2004 21:04:53 -0000 Delivered-To: lpage@example.net Received: (qmail 15207 invoked by uid 500); 16 May 2004 21:04:52 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 15193 invoked by uid 500); 16 May 2004 21:04:52 -0000 Delivered-To: lpage@example.net Received: (qmail 15189 invoked by uid 98); 16 May 2004 21:04:52 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.028433 secs); 16 May 2004 21:04:52 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.028433 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 16 May 2004 21:04:52 -0000 Received: (qmail 12204 invoked by uid 1808); 16 May 2004 21:04:49 -0000 Date: 16 May 2004 21:04:49 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net/src/Util PropertiesDictionary.cs X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/16 14:04:49 Modified: src/Util PropertiesDictionary.cs Log: Fixed bug where the dictionary entry key is not decoded correctly on deserialisation Revision Changes Path 1.5 +4 -1 logging-log4net/src/Util/PropertiesDictionary.cs Index: PropertiesDictionary.cs =================================================================== RCS file: /home/cvs/logging-log4net/src/Util/PropertiesDictionary.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- PropertiesDictionary.cs 18 Apr 2004 18:34:58 -0000 1.4 +++ PropertiesDictionary.cs 16 May 2004 21:04:49 -0000 1.5 @@ -67,7 +67,8 @@ { foreach(SerializationEntry entry in info) { - m_ht[XmlConvert.EncodeLocalName(entry.Name)] = entry.Value; + // The keys are stored as Xml encoded names + m_ht[XmlConvert.DecodeName(entry.Name)] = entry.Value; } } #endif @@ -124,6 +125,8 @@ // If value is serializable then we add it to the list if (entry.Value.GetType().IsSerializable) { + // Store the keys as an Xml encoded local name as it may contain colons (':') + // which are not escaped by the Xml Serialisation framework info.AddValue(XmlConvert.EncodeLocalName(entry.Key as string), entry.Value); } } From log4net-dev-lpage@example.net Sun May 16 21:15:17 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 14702 invoked from network); 16 May 2004 21:15:17 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 16 May 2004 21:15:17 -0000 Received: (qmail 33798 invoked by uid 500); 16 May 2004 21:15:19 -0000 Delivered-To: lpage@example.net Received: (qmail 33746 invoked by uid 500); 16 May 2004 21:15:19 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 33727 invoked by uid 500); 16 May 2004 21:15:18 -0000 Delivered-To: lpage@example.net Received: (qmail 33721 invoked by uid 98); 16 May 2004 21:15:18 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.028408 secs); 16 May 2004 21:15:18 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.028408 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 16 May 2004 21:15:18 -0000 Received: (qmail 14672 invoked by uid 1808); 16 May 2004 21:15:15 -0000 Date: 16 May 2004 21:15:15 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net/src/DateFormatter AbsoluteTimeDateFormatter.cs X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/16 14:15:15 Modified: src/DateFormatter AbsoluteTimeDateFormatter.cs Log: Added locking to date formatter where the shared static buffer is written to. Revision Changes Path 1.4 +18 -8 logging-log4net/src/DateFormatter/AbsoluteTimeDateFormatter.cs Index: AbsoluteTimeDateFormatter.cs =================================================================== RCS file: /home/cvs/logging-log4net/src/DateFormatter/AbsoluteTimeDateFormatter.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- AbsoluteTimeDateFormatter.cs 23 Feb 2004 03:18:03 -0000 1.3 +++ AbsoluteTimeDateFormatter.cs 16 May 2004 21:15:15 -0000 1.4 @@ -96,19 +96,29 @@ // the previously calculated time string if (s_lastTimeToTheSecond != currentTimeToTheSecond) { - // We are in a new second. - s_lastTimeToTheSecond = currentTimeToTheSecond; - s_lastTimeBuf.Length = 0; + // lock so that only one thread can use the buffer and + // update the s_lastTimeToTheSecond and s_lastTimeString - // Calculate the new string for this second - FormatDateWithoutMillis(dateToFormat, s_lastTimeBuf); + // PERF: Try removing this lock and using a new StringBuilder each time + lock(s_lastTimeBuf) + { + if (s_lastTimeToTheSecond != currentTimeToTheSecond) + { + // We are in a new second. + s_lastTimeBuf.Length = 0; - // Store the time as a string (we only have to do this once per second) - s_lastTimeString = s_lastTimeBuf.ToString(); + // Calculate the new string for this second + FormatDateWithoutMillis(dateToFormat, s_lastTimeBuf); + + // Store the time as a string (we only have to do this once per second) + s_lastTimeString = s_lastTimeBuf.ToString(); + s_lastTimeToTheSecond = currentTimeToTheSecond; + } + } } writer.Write(s_lastTimeString); - // Append the current milli info + // Append the current millisecond info writer.Write(','); int millis = dateToFormat.Millisecond; if (millis < 100) From log4net-dev-lpage@example.net Sun May 16 21:28:55 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 17985 invoked from network); 16 May 2004 21:28:55 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 16 May 2004 21:28:55 -0000 Received: (qmail 58759 invoked by uid 500); 16 May 2004 21:28:50 -0000 Delivered-To: lpage@example.net Received: (qmail 58641 invoked by uid 500); 16 May 2004 21:28:50 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 58508 invoked by uid 500); 16 May 2004 21:28:49 -0000 Delivered-To: lpage@example.net Received: (qmail 58451 invoked by uid 98); 16 May 2004 21:28:48 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.913443 secs); 16 May 2004 21:28:48 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.913443 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 16 May 2004 21:28:46 -0000 Received: (qmail 17874 invoked by uid 1808); 16 May 2004 21:28:43 -0000 Date: 16 May 2004 21:28:43 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net/src/Core LoggingEvent.cs X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/16 14:28:43 Modified: src/Core LoggingEvent.cs Log: fixed documentation comments Revision Changes Path 1.4 +2 -2 logging-log4net/src/Core/LoggingEvent.cs Index: LoggingEvent.cs =================================================================== RCS file: /home/cvs/logging-log4net/src/Core/LoggingEvent.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- LoggingEvent.cs 23 Feb 2004 03:18:03 -0000 1.3 +++ LoggingEvent.cs 16 May 2004 21:28:43 -0000 1.4 @@ -1179,12 +1179,12 @@ public const string HostNameProperty = "log4net:HostName"; /// <summary> - /// The key into the <see cref="Properties"/> map for the host name value. + /// The key into the <see cref="Properties"/> map for the thread identity value. /// </summary> public const string IdentityProperty = "log4net:Identity"; /// <summary> - /// The key into the <see cref="Properties"/> map for the host name value. + /// The key into the <see cref="Properties"/> map for the user name value. /// </summary> public const string UserNameProperty = "log4net:UserName"; From log4net-dev-lpage@example.net Sun May 16 22:12:58 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 32142 invoked from network); 16 May 2004 22:12:58 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 16 May 2004 22:12:58 -0000 Received: (qmail 44067 invoked by uid 500); 16 May 2004 22:13:00 -0000 Delivered-To: lpage@example.net Received: (qmail 44016 invoked by uid 500); 16 May 2004 22:13:00 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 43995 invoked by uid 500); 16 May 2004 22:12:59 -0000 Delivered-To: lpage@example.net Received: (qmail 43990 invoked by uid 98); 16 May 2004 22:12:59 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.061167 secs); 16 May 2004 22:12:59 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.061167 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 16 May 2004 22:12:59 -0000 Received: (qmail 32135 invoked by uid 1808); 16 May 2004 22:12:56 -0000 Date: 16 May 2004 22:12:56 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net/tests/src/Util PropertiesDictionaryTest.cs X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/16 15:12:56 Modified: tests/src log4net.Tests.csproj Added: tests/src/Appender RemotingAppenderTest.cs tests/src/Util PropertiesDictionaryTest.cs Log: Added tests for the RemotingAppender and the PropertiesDictionary. Revision Changes Path 1.4 +15 -0 logging-log4net/tests/src/log4net.Tests.csproj Index: log4net.Tests.csproj =================================================================== RCS file: /home/cvs/logging-log4net/tests/src/log4net.Tests.csproj,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- log4net.Tests.csproj 26 Feb 2004 21:44:53 -0000 1.3 +++ log4net.Tests.csproj 16 May 2004 22:12:56 -0000 1.4 @@ -82,6 +82,11 @@ Project = "{F6A02431-167E-4347-BC43-65532C31CDB7}" Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}" /> + <Reference + Name = "System.Runtime.Remoting" + AssemblyName = "System.Runtime.Remoting" + HintPath = "..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Runtime.Remoting.dll" + /> </References> </Build> <Files> @@ -113,6 +118,11 @@ BuildAction = "Compile" /> <File + RelPath = "Appender\RemotingAppenderTest.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "Appender\RollingFileAppenderTest.cs" SubType = "Code" BuildAction = "Compile" @@ -129,6 +139,11 @@ /> <File RelPath = "Layout\PatternLayoutTest.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File + RelPath = "Util\PropertiesDictionaryTest.cs" SubType = "Code" BuildAction = "Compile" /> 1.1 logging-log4net/tests/src/Appender/RemotingAppenderTest.cs Index: RemotingAppenderTest.cs =================================================================== #region Copyright & License // // Copyright 2001-2004 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // #endregion using System; using System.Diagnostics; using System.Globalization; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; using log4net.Util; using log4net.Layout; using log4net.Core; using log4net.Appender; using IRemoteLoggingSink = log4net.Appender.RemotingAppender.IRemoteLoggingSink; using NUnit.Framework; namespace log4net.Tests.Appender { /// <summary> /// Used for internal unit testing the <see cref="RemotingAppender"/> class. /// </summary> /// <remarks> /// Used for internal unit testing the <see cref="RemotingAppender"/> class. /// </remarks> [TestFixture] public class RemotingAppenderTest { private IChannel m_remotingChannel = null; /// <summary> /// Test that the Message property is correctly remoted /// </summary> [Test] public void TestRemotedMessage() { // Setup the remoting appender ConfigureRootAppender(FixFlags.Partial); RemoteLoggingSinkImpl.Instance.Events = null; log4net.Repository.Hierarchy.Logger root = null; root = ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root; string testMessage = string.Format("test message [ {0} ]", (new Random()).Next()); // Log a message that will be remoted root.Log(Level.Debug, testMessage, null); // Wait for the remoted object to be delivered System.Threading.Thread.Sleep(1000); LoggingEvent[] events = RemoteLoggingSinkImpl.Instance.Events; Assertion.AssertEquals("Expect to receive 1 remoted event", 1, events.Length); Assertion.AssertEquals("Expect Message match after remoting event", testMessage, events[0].RenderedMessage); } /// <summary> /// Test that the UserName property is not remoted when doing a Fix.Partial /// </summary> [Test] public void TestPartialFix() { // Setup the remoting appender ConfigureRootAppender(FixFlags.Partial); RemoteLoggingSinkImpl.Instance.Events = null; log4net.Repository.Hierarchy.Logger root = null; root = ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root; // Log a message that will be remoted root.Log(Level.Debug, "test message", null); // Wait for the remoted object to be delivered System.Threading.Thread.Sleep(1000); LoggingEvent[] events = RemoteLoggingSinkImpl.Instance.Events; Assertion.AssertEquals("Expect to receive 1 remoted event", 1, events.Length); // Grab the event data LoggingEventData eventData = GetLoggingEventData(events[0]); Assertion.AssertNull("Expect username to be null because only doing a partial fix", eventData.UserName); } /// <summary> /// Test that the UserName property is remoted when doing a Fix.All /// </summary> [Test] public void TestFullFix() { // Setup the remoting appender ConfigureRootAppender(FixFlags.All); RemoteLoggingSinkImpl.Instance.Events = null; log4net.Repository.Hierarchy.Logger root = null; root = ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root; // Log a message that will be remoted root.Log(Level.Debug, "test message", null); // Wait for the remoted object to be delivered System.Threading.Thread.Sleep(1000); LoggingEvent[] events = RemoteLoggingSinkImpl.Instance.Events; Assertion.AssertEquals("Expect to receive 1 remoted event", 1, events.Length); // Grab the event data LoggingEventData eventData = GetLoggingEventData(events[0]); Assertion.AssertNotNull("Expect username to not be null because doing a full fix", eventData.UserName); } private void RegisterRemotingServerChannel() { if (m_remotingChannel == null) { m_remotingChannel = new TcpChannel(8085); // Setup remoting server try { ChannelServices.RegisterChannel(m_remotingChannel); } catch(Exception) { } // Marshal the sink object RemotingServices.Marshal(RemoteLoggingSinkImpl.Instance, "LoggingSink", typeof(IRemoteLoggingSink)); } } /// <summary> /// Shuts down any loggers in the hierarchy, along /// with all appenders. /// </summary> private void ResetRepository() { // Regular users should not use the clear method lightly! LogManager.GetRepository().ResetConfiguration(); LogManager.GetRepository().Shutdown(); ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Clear(); } /// <summary> /// Any initialization that happens before each test can /// go here /// </summary> [SetUp] public void SetUp() { ResetRepository(); RegisterRemotingServerChannel(); } /// <summary> /// Any steps that happen after each test go here /// </summary> [TearDown] public void TearDown() { ResetRepository(); } /// <summary> /// Configures the root appender for counting and rolling /// </summary> private void ConfigureRootAppender(FixFlags fixFlags) { log4net.Repository.Hierarchy.Logger root = null; root = ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root; root.Level = Level.Debug; root.AddAppender(CreateAppender(fixFlags)); root.Repository.Configured = true; } private RemotingAppender CreateAppender(FixFlags fixFlags) { RemotingAppender appender = new RemotingAppender(); appender.Sink = "tcp://localhost:8085/LoggingSink"; appender.Lossy = false; appender.BufferSize = 1; appender.Fix = fixFlags; appender.ActivateOptions(); return appender; } public class RemoteLoggingSinkImpl : MarshalByRefObject, IRemoteLoggingSink { public static readonly RemoteLoggingSinkImpl Instance = new RemoteLoggingSinkImpl(); public LoggingEvent[] Events = null; #region Public Instance Constructors private RemoteLoggingSinkImpl() { } #endregion Public Instance Constructors #region Implementation of IRemoteLoggingSink /// <summary> /// Logs the events to the repository. /// </summary> /// <param name="events">The events to log.</param> /// <remarks> /// The events passed are logged to the <see cref="LoggerRepository"/> /// </remarks> public void LogEvents(LoggingEvent[] events) { Events = events; } #endregion Implementation of IRemoteLoggingSink #region Override implementation of MarshalByRefObject /// <summary> /// Obtains a lifetime service object to control the lifetime /// policy for this instance. /// </summary> /// <returns> /// <c>null</c> to indicate that this instance should live /// forever. /// </returns> public override object InitializeLifetimeService() { return null; } #endregion Override implementation of MarshalByRefObject } // // Helper functions to dig into the appender // private static LoggingEventData GetLoggingEventData(LoggingEvent loggingEvent) { return (LoggingEventData)Utils.GetField(loggingEvent, "m_data"); } } } 1.1 logging-log4net/tests/src/Util/PropertiesDictionaryTest.cs Index: PropertiesDictionaryTest.cs =================================================================== #region Copyright & License // // Copyright 2001-2004 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // #endregion using System; using System.IO; using System.Diagnostics; using System.Globalization; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization; using log4net.Config; using log4net.Util; using log4net.Layout; using log4net.Core; using log4net.Appender; using log4net.Repository; using log4net.Tests.Appender; using NUnit.Framework; namespace log4net.Tests.Util { /// <summary> /// Used for internal unit testing the <see cref="PropertiesDictionary"/> class. /// </summary> /// <remarks> /// Used for internal unit testing the <see cref="PropertiesDictionary"/> class. /// </remarks> [TestFixture] public class PropertiesDictionaryTest { [Test] public void TestSerialization() { PropertiesDictionary pd = new PropertiesDictionary(); for(int i=0; i<10; i++) { pd[i.ToString()] = i; } Assertion.AssertEquals("Dictionary should have 10 items", 10, pd.Count); // Serialize the properties into a memory stream BinaryFormatter formatter = new BinaryFormatter(); MemoryStream memory = new MemoryStream(); formatter.Serialize(memory, pd); // Deserialize the stream into a new properties dictionary memory.Position = 0; PropertiesDictionary pd2 = (PropertiesDictionary)formatter.Deserialize(memory); Assertion.AssertEquals("Deserialized Dictionary should have 10 items", 10, pd2.Count); foreach(string key in pd.GetKeys()) { Assertion.AssertEquals("Check Value Persisted for key ["+key+"]", pd[key], pd2[key]); } } } } From log4net-dev-lpage@example.net Sun May 16 22:14:56 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 32520 invoked from network); 16 May 2004 22:14:55 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 16 May 2004 22:14:55 -0000 Received: (qmail 47664 invoked by uid 500); 16 May 2004 22:14:58 -0000 Delivered-To: lpage@example.net Received: (qmail 47621 invoked by uid 500); 16 May 2004 22:14:57 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 47608 invoked by uid 500); 16 May 2004 22:14:57 -0000 Delivered-To: lpage@example.net Received: (qmail 47604 invoked by uid 98); 16 May 2004 22:14:57 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.02507 secs); 16 May 2004 22:14:57 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.02507 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 16 May 2004 22:14:57 -0000 Received: (qmail 32506 invoked by uid 1808); 16 May 2004 22:14:54 -0000 Date: 16 May 2004 22:14:54 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net/tests .cvsignore X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/16 15:14:54 Added: tests .cvsignore Log: Added cvsignore file Revision Changes Path 1.1 logging-log4net/tests/.cvsignore Index: .cvsignore =================================================================== bin obj *.csproj.user From log4net-dev-lpage@example.net Thu May 20 19:39:44 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 52550 invoked from network); 20 May 2004 19:39:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 20 May 2004 19:39:44 -0000 Received: (qmail 32623 invoked by uid 500); 20 May 2004 19:40:06 -0000 Delivered-To: lpage@example.net Received: (qmail 32575 invoked by uid 500); 20 May 2004 19:40:06 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 32329 invoked by uid 500); 20 May 2004 19:40:04 -0000 Delivered-To: lpage@example.net Received: (qmail 32293 invoked by uid 98); 20 May 2004 19:40:04 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.120515 secs); 20 May 2004 19:40:04 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.120515 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 20 May 2004 19:40:03 -0000 Received: (qmail 52230 invoked by uid 1808); 20 May 2004 19:39:38 -0000 Date: 20 May 2004 19:39:38 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net/tests/src .cvsignore X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/20 12:39:38 Modified: src .cvsignore tests/src .cvsignore Log: Updated cvsignore files to use wildcards Revision Changes Path 1.2 +2 -2 logging-log4net/src/.cvsignore Index: .cvsignore =================================================================== RCS file: /home/cvs/logging-log4net/src/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- .cvsignore 28 Jan 2004 20:01:18 -0000 1.1 +++ .cvsignore 20 May 2004 19:39:38 -0000 1.2 @@ -1,7 +1,7 @@ bin obj log4net.xml -log4net.csproj.user -log4net.suo +*.csproj.user +*.suo log4net.sln.old 1.2 +2 -2 logging-log4net/tests/src/.cvsignore Index: .cvsignore =================================================================== RCS file: /home/cvs/logging-log4net/tests/src/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- .cvsignore 16 Feb 2004 16:30:04 -0000 1.1 +++ .cvsignore 20 May 2004 19:39:38 -0000 1.2 @@ -1,7 +1,7 @@ bin obj log4net.xml -log4net.Tests.csproj.user -log4net.Tests.suo +*.csproj.user +*.suo log4net.sln.old From log4net-dev-lpage@example.net Thu May 20 19:39:58 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 52801 invoked from network); 20 May 2004 19:39:57 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 20 May 2004 19:39:57 -0000 Received: (qmail 33520 invoked by uid 500); 20 May 2004 19:40:22 -0000 Delivered-To: lpage@example.net Received: (qmail 33475 invoked by uid 500); 20 May 2004 19:40:21 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 33461 invoked by uid 500); 20 May 2004 19:40:21 -0000 Delivered-To: lpage@example.net Received: (qmail 33456 invoked by uid 98); 20 May 2004 19:40:21 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.025257 secs); 20 May 2004 19:40:21 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.025257 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 20 May 2004 19:40:21 -0000 Received: (qmail 52792 invoked by uid 1808); 20 May 2004 19:39:56 -0000 Date: 20 May 2004 19:39:56 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net/tests/src Util.cs X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/20 12:39:56 Removed: tests/src Util.cs Log: Renamed to Utils.cs From log4net-dev-lpage@example.net Thu May 20 19:40:31 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 53216 invoked from network); 20 May 2004 19:40:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 20 May 2004 19:40:31 -0000 Received: (qmail 35107 invoked by uid 500); 20 May 2004 19:40:55 -0000 Delivered-To: lpage@example.net Received: (qmail 35047 invoked by uid 500); 20 May 2004 19:40:54 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 35001 invoked by uid 500); 20 May 2004 19:40:54 -0000 Delivered-To: lpage@example.net Received: (qmail 34948 invoked by uid 98); 20 May 2004 19:40:54 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.048876 secs); 20 May 2004 19:40:54 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.048876 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 20 May 2004 19:40:53 -0000 Received: (qmail 53190 invoked by uid 1808); 20 May 2004 19:40:28 -0000 Date: 20 May 2004 19:40:28 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net/src/Appender CountingAppender.cs X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/20 12:40:28 Removed: src/Appender CountingAppender.cs Log: Moved to nunit tests assembly From log4net-dev-lpage@example.net Thu May 20 19:41:19 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 53813 invoked from network); 20 May 2004 19:41:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 20 May 2004 19:41:19 -0000 Received: (qmail 36987 invoked by uid 500); 20 May 2004 19:41:20 -0000 Delivered-To: lpage@example.net Received: (qmail 36826 invoked by uid 500); 20 May 2004 19:41:18 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 36740 invoked by uid 500); 20 May 2004 19:41:18 -0000 Delivered-To: lpage@example.net Received: (qmail 36653 invoked by uid 98); 20 May 2004 19:41:16 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.272019 secs); 20 May 2004 19:41:16 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.272019 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 20 May 2004 19:41:14 -0000 Received: (qmail 53448 invoked by uid 1808); 20 May 2004 19:40:49 -0000 Date: 20 May 2004 19:40:49 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net/tests/src log4net.Tests.csproj X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/20 12:40:49 Modified: tests/src log4net.Tests.csproj Log: Revision Changes Path 1.5 +5 -0 logging-log4net/tests/src/log4net.Tests.csproj Index: log4net.Tests.csproj =================================================================== RCS file: /home/cvs/logging-log4net/tests/src/log4net.Tests.csproj,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- log4net.Tests.csproj 16 May 2004 22:12:56 -0000 1.4 +++ log4net.Tests.csproj 20 May 2004 19:40:49 -0000 1.5 @@ -133,6 +133,11 @@ BuildAction = "Compile" /> <File + RelPath = "Core\ShutdownTest.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "Hierarchy\Logger.cs" SubType = "Code" BuildAction = "Compile" From log4net-dev-lpage@example.net Fri May 21 13:12:36 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 79505 invoked from network); 21 May 2004 13:12:36 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 21 May 2004 13:12:36 -0000 Received: (qmail 59723 invoked by uid 500); 21 May 2004 13:12:40 -0000 Delivered-To: lpage@example.net Received: (qmail 59686 invoked by uid 500); 21 May 2004 13:12:40 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 59489 invoked by uid 500); 21 May 2004 13:12:37 -0000 Delivered-To: lpage@example.net Received: (qmail 59234 invoked by uid 98); 21 May 2004 13:12:33 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.542234 secs); 21 May 2004 13:12:33 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.542234 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 21 May 2004 13:12:31 -0000 Received: (qmail 79202 invoked by uid 1808); 21 May 2004 13:12:24 -0000 Date: 21 May 2004 13:12:24 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net/tests nant.build X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/21 06:12:24 Added: tests nant.build Log: Added nant build file for tests. Only allows building on net-1.0 and net-1.1. Allows NUnit test to be run on net-1.0. Revision Changes Path 1.1 logging-log4net/tests/nant.build Index: nant.build =================================================================== <?xml version="1.0" ?> <project name="log4net-samples" default="compile-all" xmlnds="http://tempuri.org/nant-vs.xsd"> <property name="log4net.basedir" value="../" readonly="false" /> <property name="project.build.config" value="debug" readonly="false" /> <property name="project.build.package" value="false" readonly="false" /> <!-- Include log4net helpers --> <include buildfile="${log4net.basedir}/log4net.include" /> <!-- Targets that should always be executed --> <call target="set-build-configuration" /> <call target="set-runtime-configuration" /> <!-- Target for compiling the tests on all frameworks --> <target name="compile-all" description="Builds all log4net tests"> <echo message="Compiling all runtime configurations for the ${current.build.config} build configuration." /> <available type="Framework" resource="net-1.0" property="temp.framework.available" /> <if propertytrue="temp.framework.available"> <call target="set-net-1.0-runtime-configuration" /> <call target="compile-${current.runtime.config}-${current.runtime.version}" /> </if> <ifnot propertytrue="temp.framework.available"> <if propertyexists="project.build.package" propertytrue="project.build.package"> <fail message="The .NET Framework 1.0 is not available." /> </if> <ifnot propertyexists="project.build.package" propertytrue="project.build.package"> <echo message="The .NET Framework 1.0 is not available. Build skipped." /> </ifnot> </ifnot> <available type="Framework" resource="net-1.1" property="temp.framework.available" /> <if propertytrue="temp.framework.available"> <call target="set-net-1.1-runtime-configuration" /> <call target="compile-${current.runtime.config}-${current.runtime.version}" /> </if> <ifnot propertytrue="temp.framework.available"> <if propertyexists="project.build.package" propertytrue="project.build.package"> <fail message="The .NET Framework 1.1 is not available." /> </if> <ifnot propertyexists="project.build.package" propertytrue="project.build.package"> <echo message="The .NET Framework 1.1 is not available. Build skipped." /> </ifnot> </ifnot> </target> <!-- Target for compiling the tests on net-1.0 --> <target name="compile-net-1.0" description="Builds log4net tests .NET Framework 1.0 version" depends="set-net-1.0-runtime-configuration, check-log4net-basedir, clean-current-bin-dir"> <!-- copy log4net build output --> <copy todir="${current.bin.dir}"> <fileset basedir="${log4net.basedir}/${current.bin.dir}"> <includes name="*.*" /> </fileset> </copy> <csc nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.Tests.dll"> <sources basedir="${log4net.basedir}/tests/src"> <includes name="**/*.cs" /> <includes name="${log4net.basedir}/src/AssemblyVersionInfo.cs" /> </sources> <references defaultexcludes="true"> <includes name="mscorlib.dll" /> <includes name="System.dll" /> <includes name="System.Data.dll" /> <includes name="System.Web.dll" /> <includes name="System.Xml.dll" /> <includes name="System.Runtime.Remoting.dll" /> <includes name="${current.bin.dir}/log4net.dll" frompath="false" /> <includes name="lib/nunit.framework.dll" /> <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework>/<framework version>/<build configuration> directory --> <includes name="lib/${current.runtime.config}/${current.runtime.version}/${current.build.config}/*.dll" /> <includes name="${log4net.basedir}/lib/${current.runtime.config}/${current.runtime.version}/${current.build.config}/*.dll" /> </references> </csc> </target> <!-- Target for compiling the tests on net-1.1 --> <target name="compile-net-1.1" description="Builds log4net tests .NET Framework 1.1 version" depends="set-net-1.1-runtime-configuration, check-log4net-basedir, clean-current-bin-dir, check-log4net-assembly"> <!-- copy log4net build output --> <copy todir="${current.bin.dir}"> <fileset basedir="${log4net.basedir}/${current.bin.dir}"> <includes name="*.*" /> </fileset> </copy> <copy todir="${current.bin.dir}"> <fileset basedir="${log4net.basedir}/tests/lib"> <includes name="nunit.framework.dll" /> </fileset> </copy> <csc nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.Tests.dll"> <sources basedir="${log4net.basedir}/tests/src"> <includes name="**/*.cs" /> <includes name="${log4net.basedir}/src/AssemblyVersionInfo.cs" /> </sources> <references defaultexcludes="true"> <includes name="mscorlib.dll" /> <includes name="System.dll" /> <includes name="System.Data.dll" /> <includes name="System.Web.dll" /> <includes name="System.Xml.dll" /> <includes name="System.Runtime.Remoting.dll" /> <includes name="${current.bin.dir}/log4net.dll" frompath="false" /> <includes name="${current.bin.dir}/nunit.framework.dll" frompath="false" /> <!-- allow for third party assemblies to be referenced by just storing them in the lib/<framework>/<framework version>/<build configuration> directory --> <includes name="lib/${current.runtime.config}/${current.runtime.version}/${current.build.config}/*.dll" /> <includes name="${log4net.basedir}/lib/${current.runtime.config}/${current.runtime.version}/${current.build.config}/*.dll" /> </references> </csc> </target> <!-- Currently we cannot run the tests in the environment of the target framework only in the host framework --> <target name="runtests" description="Runs log4net tests"> <call target="runtests-net-1.0" /> </target> <target name="runtests-net-1.0" description="Runs log4net tests on .NET Framework 1.0 version" depends="compile-net-1.0"> <nunit2> <formatter type="Plain" /> <test assemblyname="${current.bin.dir}/log4net.Tests.dll" /> </nunit2> </target> </project> From log4net-dev-lpage@example.net Fri May 21 14:26:01 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 56886 invoked from network); 21 May 2004 14:26:00 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 21 May 2004 14:26:00 -0000 Received: (qmail 93540 invoked by uid 500); 21 May 2004 14:26:07 -0000 Delivered-To: lpage@example.net Received: (qmail 93465 invoked by uid 500); 21 May 2004 14:26:07 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 93449 invoked by uid 98); 21 May 2004 14:26:07 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.194266 secs); 21 May 2004 14:26:07 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.194266 secs) Received: from unknown (HELO mail.securityinc.com) (83.161.120.155) by hermes.apache.org with SMTP; 21 May 2004 14:26:06 -0000 Received: from bnantz [83.161.120.155] by mail.securityinc.com with ESMTP (SMTPD32-8.05) id A31E3115010C; Fri, 21 May 2004 09:33:02 -0500 From: "Brian Nantz" <lpage@example.net> To: <lpage@example.net> Subject: Log4NET Visaul Studio Integration Date: Fri, 21 May 2004 09:25:50 -0500 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0019_01C43F15.9B858B20" X-Mailer: Microsoft Office Outlook, Build 11.0.5510 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Thread-Index: AcQ/P4PcuzGhdFwxQxWdgK+IsFkstw== Message-Id: <200405210933456.SM01064@bnantz> X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N This is a multi-part message in MIME format. ------=_NextPart_000_0019_01C43F15.9B858B20 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit I think we should work on a tool that would allow easier use of Log4NET within Visual Studio.NET. This would not only encourage the use of Log4NET but also make it easier and faster for us die-hard users. I was thinking of integrating it into VS.NET like a component (like a Timer or errorProvider) this means that it would be much more useful for webservices, ASP.NET, Windows Forms and Component development. The following could be the features: 1. Can configure Appenders, Loggers, Filters, and Layouts all graphically. 2. Automatically add the code to the file as well as to the correct config file and AssemblyInfo.cs files. 3. Can possibly reuse the GUI to configure Log4Net outside of VS.NET for easy configuration on the fly. On my website(http://www.nantz.org/log4NETAddin.zip) I have posted some ideas and screenshots. If you all think it is a good idea then we should start the infrastructure for this! By the way look for my upcoming book Open Source .Net Development: Programming with NAnt, NDoc, NUnit & More that features Log4Net and download a sample chapter at http://www.nantz.org/pubs.aspx. Brian Nantz ------=_NextPart_000_0019_01C43F15.9B858B20 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html xmlns:o=3D"urn:schemas-microsoft-com:office:office" = xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns=3D"http://www.w3.org/TR/REC-html40"> <head> <META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; = charset=3Dus-ascii"> <meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)"> <style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman";} a:link, span.MsoHyperlink {color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline;} span.EmailStyle17 {mso-style-type:personal-compose; font-family:Arial; color:windowtext;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in;} div.Section1 {page:Section1;} --> </style> </head> <body lang=3DEN-US link=3Dblue vlink=3Dpurple> <div class=3DSection1> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'>I think we should = work on a tool that would allow easier use of Log4NET within Visual = Studio.NET.&nbsp; This would not only encourage the use of Log4NET but also make it easier and = faster for us die-hard users.&nbsp; I was thinking of integrating it into = VS.NET like a component (like a Timer or errorProvider) this means that it would be = much more useful for webservices, ASP.NET, Windows Forms and Component = development.&nbsp; The following could be the<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>features:<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p>&nbsp;</o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p>&nbsp;</o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>1.&nbsp;&nbsp;&nbsp; Can configure Appenders, Loggers, Filters, and Layouts = all<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>graphically.<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>2.&nbsp;&nbsp;&nbsp; Automatically add the code to the file as well as to the correct<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'>config file and AssemblyInfo.cs files.<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>3.&nbsp;&nbsp;&nbsp; Can possibly reuse the GUI to configure Log4Net outside of VS.NET<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'>for easy = configuration on the fly.<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p>&nbsp;</o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>&nbsp;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p>&nbsp;</o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'>On my website(<a href=3D"http://www.nantz.org/log4NETAddin.zip">http://www.nantz.org/log4N= ETAddin.zip</a>) I have posted some ideas and screenshots.&nbsp; If you all think it is a = good idea then we should start the infrastructure for = this!<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p>&nbsp;</o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p>&nbsp;</o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'>By the way look for = my upcoming book Open Source .Net Development:<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'>Programming with = NAnt, NDoc, NUnit &amp; More that features Log4Net and download a sample chapter at = <a href=3D"http://www.nantz.org/pubs.aspx">http://www.nantz.org/pubs.aspx</a= >.<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p>&nbsp;</o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p>&nbsp;</o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>Brian Nantz<o:p></o:p></span></font></p> </div> </body> </html> ------=_NextPart_000_0019_01C43F15.9B858B20-- From log4net-dev-lpage@example.net Fri May 21 15:03:24 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 95657 invoked from network); 21 May 2004 15:03:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 21 May 2004 15:03:24 -0000 Received: (qmail 87999 invoked by uid 500); 21 May 2004 15:02:31 -0000 Delivered-To: lpage@example.net Received: (qmail 87824 invoked by uid 500); 21 May 2004 15:02:28 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 87605 invoked by uid 98); 21 May 2004 15:02:24 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.137704 secs); 21 May 2004 15:02:24 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.137704 secs) Received: from unknown (HELO relay.pair.com) (83.161.120.155) by hermes.apache.org with SMTP; 21 May 2004 15:02:23 -0000 Received: (qmail 84995 invoked from network); 21 May 2004 15:02:09 -0000 Received: from ringoffire.crutchfield.com (HELO sequent.org) (83.161.120.155) by relay.pair.com with SMTP; 21 May 2004 15:02:09 -0000 X-pair-Authenticated: 83.161.120.155 Message-ID: <lpage@example.net> Date: Fri, 21 May 2004 11:02:08 -0400 From: Baron Schwartz <lpage@example.net> User-Agent: Mozilla Thunderbird 0.6+ (Windows/20040426) X-Accept-Language: en-us, en MIME-Version: 1.0 To: lpage@example.net Subject: Configuration manual is out-of-date? Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N There seems to be out-of-date or incorrect information at http://logging.apache.org/log4net/release/manual/configuration.html. When I tried to use the PatternLayout <conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" /> I got weird output. I had to look in the log4j JavaDocs to find that, for example, [%thread] needs to actually be [%t]. I find that these docs don't really have enough information in them; I would prefer not to search log4j's docs to find out stuff. I'm happy to help update them as I get time to do so. One thing I think would be great is a simple HTML table of % patterns that are valid and what they mean. Where is this file kept? Or should I just submit a patch? Thanks Baron From log4net-dev-lpage@example.net Fri May 21 22:12:50 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 56902 invoked from network); 21 May 2004 22:12:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 21 May 2004 22:12:49 -0000 Received: (qmail 2993 invoked by uid 500); 21 May 2004 22:13:12 -0000 Delivered-To: lpage@example.net Received: (qmail 2945 invoked by uid 500); 21 May 2004 22:13:12 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 2930 invoked by uid 500); 21 May 2004 22:13:11 -0000 Delivered-To: lpage@example.net Received: (qmail 2925 invoked by uid 98); 21 May 2004 22:13:11 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.035625 secs); 21 May 2004 22:13:11 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.035625 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 21 May 2004 22:13:11 -0000 Received: (qmail 56883 invoked by uid 1808); 21 May 2004 22:12:48 -0000 Date: 21 May 2004 22:12:48 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net build.cmd X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/21 15:12:48 Modified: . build.cmd Log: Updated help in build.cmd. Added -? option that displays the command line syntax. Changed build.cmd to look for NAnt in the PATH and give a usefull error message if it cannot be found. Revision Changes Path 1.2 +65 -27 logging-log4net/build.cmd Index: build.cmd =================================================================== RCS file: /home/cvs/logging-log4net/build.cmd,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- build.cmd 28 Jan 2004 20:39:55 -0000 1.1 +++ build.cmd 21 May 2004 22:12:48 -0000 1.2 @@ -3,27 +3,46 @@ REM We are going to change the environment variables, so protect the current settings. SETLOCAL ENABLEDELAYEDEXPANSION -REM Figure out the path to the log4net directory -call :ComputeBase %~f0 -set LOG4NET_DIR=%RESULT% +IF "%1"=="-?" GOTO CommandLineOptions -echo LOG4NET_DIR is %LOG4NET_DIR% +REM Figure out the path to the log4net directory +CALL :ComputeBase %~f0 +SET LOG4NET_DIR=%RESULT% +ECHO LOG4NET_DIR is %LOG4NET_DIR% REM Get path to NAnt.exe -set NANTEXE_PATH=C:\net\nant-20031003\bin\nant.exe -echo NANTEXE_PATH is %NANTEXE_PATH% +REM Try and determine if NAnt is in the PATH +SET NANTEXE_PATH=nant.exe +%NANTEXE_PATH% -help >NUL: 2>NUL: +IF NOT ERRORLEVEL 1 goto FoundNAnt + +REM Try hard coded path for NAnt +SET NANTEXE_PATH=C:\net\nant-0.85-20040520\bin\nant.exe +%NANTEXE_PATH% -help >NUL: 2>NUL: +IF NOT ERRORLEVEL 1 goto FoundNAnt + +REM We have not found NAnt +ECHO. +ECHO NAnt does not appear to be installed. NAnt.exe failed to execute. +ECHO Please ensure NAnt is installed and can be found in the PATH. +GOTO EndError + + +:FoundNAnt +ECHO NANTEXE_PATH is %NANTEXE_PATH% REM Setup the build file IF EXIST nant.build ( - set BUILD_FILE=nant.build + SET BUILD_FILE=nant.build ) ELSE ( - set BUILD_FILE=%LOG4NET_DIR%\log4net.build + SET BUILD_FILE=%LOG4NET_DIR%\log4net.build ) -echo BUILD_FILE is %BUILD_FILE% +ECHO BUILD_FILE is %BUILD_FILE% -REM Check for Mono install, update path to include mono libs +REM TODO: Remove this old Mono stuff +REM Check for Mono old install, update path to include mono libs IF EXIST %WINDIR%\monobasepath.bat ( CALL %WINDIR%\monobasepath.bat @@ -32,53 +51,72 @@ SET PATH="!CLEAN_MONO_BASEPATH!\bin\;!CLEAN_MONO_BASEPATH!\lib\;%path%" ) +REM End TODO IF "%1"=="package" GOTO Package -REM echo PATH is %PATH% - "%NANTEXE_PATH%" "-buildfile:%BUILD_FILE%" %1 %2 %3 %4 %5 %6 %7 %8 -GOTO End +GOTO EndOk :Package IF "%2"=="" GOTO NoProjectVersion "%NANTEXE_PATH%" "-buildfile:%BUILD_FILE%" package "-D:package.version=%2" %3 %4 %5 %6 %7 %8 -GOTO End +GOTO EndOk :NoProjectVersion +ECHO. +ECHO SYNTAX ERROR: Missing Version String. ECHO Please specify the version number of log4net that you want to package. GOTO CommandLineOptions :CommandLineOptions -ECHO The following commandline is valid : -ECHO usage: build.cmd [target] -ECHO When no target is specified, debug build configuration for the .NET Framework 1.0 is built. -echo When the target is "package", the version number of log4net that you want to package has to be specified. -ECHO eg. build.cmd package 1.3.0 -GOTO End +ECHO. +ECHO Use the following command line syntax: +ECHO. +ECHO build.cmd -? +ECHO build.cmd -projecthelp +ECHO build.cmd [nant target] +ECHO build.cmd package [version string] +ECHO. +ECHO To get a list of all NAnt build targets run build.cmd with the -projecthelp option. +ECHO If no NAnt target is specified then the default target is 'compile-all'. This will compile all configurations on all available frameworks. +ECHO When using the 'package' command the version label for the package must be specified. +ECHO. +ECHO Examples: +ECHO. +ECHO build.cmd compile-mono-1.0 +ECHO build.cmd compile-all +ECHO build.cmd package 1.3.0 +ECHO build.cmd package 2.1.0-alpha +ECHO. +GOTO EndError REM ------------------------------------------ REM Expand a string to a full path REM ------------------------------------------ :FullPath -set RESULT=%~f1 -goto :EOF +SET RESULT=%~f1 +GOTO :EOF REM ------------------------------------------ REM Compute the current directory REM given a path to this batch script. REM ------------------------------------------ :ComputeBase -set RESULT=%~dp1 +SET RESULT=%~dp1 REM Remove the trailing \ -set RESULT=%RESULT:~0,-1% -Call :FullPath %RESULT% -goto :EOF +SET RESULT=%RESULT:~0,-1% +CALL :FullPath %RESULT% +GOTO :EOF -:End +:EndOk ENDLOCAL EXIT /B 0 + +:EndError +ENDLOCAL +EXIT /B 1 From log4net-dev-lpage@example.net Fri May 21 22:16:06 2004 Return-Path: <log4net-dev-lpage@example.net> Delivered-To: lpage@example.net Received: (qmail 59479 invoked from network); 21 May 2004 22:16:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 21 May 2004 22:16:05 -0000 Received: (qmail 13734 invoked by uid 500); 21 May 2004 22:16:08 -0000 Delivered-To: lpage@example.net Received: (qmail 13347 invoked by uid 500); 21 May 2004 22:16:03 -0000 Mailing-List: contact lpage@example.net; run by ezmlm Precedence: bulk list-help: <mailto:lpage@example.net> list-unsubscribe: <mailto:lpage@example.net> list-post: <mailto:lpage@example.net> Reply-To: "Log4NET Dev" <lpage@example.net> Delivered-To: mailing list lpage@example.net Received: (qmail 13012 invoked by uid 500); 21 May 2004 22:15:59 -0000 Delivered-To: lpage@example.net Received: (qmail 12827 invoked by uid 98); 21 May 2004 22:15:58 -0000 Received: from lpage@example.net by hermes.apache.org by uid 82 with qmail-scanner-1.20 (clamuko: 0.70. Clear:RC:0(83.161.120.155):. Processed in 0.330284 secs); 21 May 2004 22:15:58 -0000 X-Qmail-Scanner-Mail-From: lpage@example.net via hermes.apache.org X-Qmail-Scanner: 1.20 (Clear:RC:0(83.161.120.155):. Processed in 0.330284 secs) Received: from unknown (HELO minotaur.apache.org) (83.161.120.155) by hermes.apache.org with SMTP; 21 May 2004 22:15:56 -0000 Received: (qmail 58905 invoked by uid 1808); 21 May 2004 22:15:33 -0000 Date: 21 May 2004 22:15:33 -0000 Message-ID: <lpage@example.net> From: lpage@example.net To: lpage@example.net Subject: cvs commit: logging-log4net/src/Util/PatternStringConverters EnvironmentPatternConverter.cs X-Spam-Rating: hermes.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N nicko 2004/05/21 15:15:33 Modified: . log4net.build src AssemblyInfo.cs LogManager.cs src/Appender AdoNetAppender.cs AspNetTraceAppender.cs ColoredConsoleAppender.cs EventLogAppender.cs NetSendAppender.cs OutputDebugStringAppender.cs RemotingAppender.cs SmtpAppender.cs src/Config AliasDomainAttribute.cs AliasRepositoryAttribute.cs ConfiguratorAttribute.cs DOMConfigurator.cs DOMConfiguratorAttribute.cs DomainAttribute.cs Log4NetConfigurationSectionHandler.cs PluginAttribute.cs RepositoryAttribute.cs XmlConfiguratorAttribute.cs src/Core DefaultRepositorySelector.cs LoggerManager.cs src/Plugin RemoteLoggingServerPlugin.cs src/Util NativeError.cs src/Util/PatternStringConverters EnvironmentPatternConverter.cs Log: Updated log4net.build to not specify file excludes for specific platforms. Updated code files to use C# preprocessor defines to conditionaly exclude the contents of some files from some of the builds. This improves the visability of the exclusions and reduces the maintanence of the nant build file. Revision Changes Path 1.3 +0 -70 logging-log4net/log4net.build Index: log4net.build =================================================================== RCS file: /home/cvs/logging-log4net/log4net.build,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- log4net.build 16 Feb 2004 02:25:50 -0000 1.2 +++ log4net.build 21 May 2004 22:15:32 -0000 1.3 @@ -260,42 +260,6 @@ <csc warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml"> <sources basedir="${log4net.basedir}/src"> <includes name="**/*.cs" /> - <!-- .NET Compact Framework 1.0 has no support for ASP.NET --> - <excludes name="Appender/AspNetTraceAppender.cs" /> - <!-- .NET Compact Framework 1.0 has no support for Win32 API's --> - <excludes name="Appender/ColoredConsoleAppender.cs" /> - <!-- .NET Compact Framework 1.0 has no support for System.Diagnostics.EventLog --> - <excludes name="Appender/EventLogAppender.cs" /> - <!-- .NET Compact Framework 1.0 has no support for Win32 NetMessageBufferSend function --> - <excludes name="Appender/NetSendAppender.cs" /> - <!-- .NET Compact Framework 1.0 has no support for System.Runtime.Remoting --> - <excludes name="Appender/RemotingAppender.cs" /> - <!-- .NET Compact Framework 1.0 has no support for System.Web.Mail --> - <excludes name="Appender/SmtpAppender.cs" /> - <!-- - do not include attributes in the .NET Compact Framework 1.0 version - because reading attributes is not supported anyway - - including these attributes would confuse developers and would possible - cause issues when reading these attribute would eventually become - available - --> - <excludes name="Config/AliasDomainAttribute.cs" /> - <excludes name="Config/AliasRepositoryAttribute.cs" /> - <excludes name="Config/ConfiguratorAttribute.cs" /> - <excludes name="Config/DomainAttribute.cs" /> - <excludes name="Config/RepositoryAttribute.cs" /> - <excludes name="Config/DOMConfiguratorAttribute.cs" /> - <excludes name="Config/XmlConfiguratorAttribute.cs" /> - <excludes name="Config/PluginAttribute.cs" /> - <!-- .NET Compact Framework 1.0 has no support for application configuration files --> - <excludes name="Config/Log4NetConfigurationSectionHandler.cs" /> - <!-- .NET Compact Framework 1.0 has no support for Environment.GetEnvironmentVariable() --> - <excludes name="Util/PatternStringConverters/EnvironmentPatternConverter.cs" /> - <!-- .NET Compact Framework 1.0 has no support for System.Runtime.Remoting --> - <excludes name="Plugin/RemoteLoggingServerPlugin.cs" /> - <!-- .NET Compact Framework 1.0 uses the CompactRepositorySelector implementation of IRepositorySelector --> - <excludes name="Core/DefaultRepositorySelector.cs" /> </sources> <references> <includes name="mscorlib.dll" /> @@ -334,8 +298,6 @@ <csc nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml"> <sources basedir="${log4net.basedir}/src"> <includes name="**/*.cs" /> - <!-- .NET Framework 1.0 uses the DefaultRepositorSelector implementation of IRepositorySelector --> - <excludes name="spi/CompactRepositorySelector.cs" /> </sources> <references> <includes name="mscorlib.dll" /> @@ -375,8 +337,6 @@ <csc nostdlib="true" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll" doc="${current.bin.dir}/log4net.xml"> <sources basedir="${log4net.basedir}/src"> <includes name="**/*.cs" /> - <!-- .NET Framework 1.0 uses the DefaultRepositorSelector implementation of IRepositorySelector --> - <excludes name="spi/CompactRepositorySelector.cs" /> </sources> <references> <includes name="mscorlib.dll" /> @@ -416,18 +376,6 @@ <csc nostdlib="false" noconfig="true" warnaserror="true" target="library" debug="${current.build.debug}" define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll"> <sources basedir="${log4net.basedir}/src"> <includes name="**/*.cs" /> - <!-- Mono 1.0 has no support for Win32 API's --> - <excludes name="Appender/ColoredConsoleAppender.cs" /> - <!-- Mono 1.0 has no full support for System.Diagnostics.EventLog --> - <excludes name="Appender/EventLogAppender.cs" /> - <!-- Mono 1.0 has no support for Win32 NetMessageBufferSend function --> - <excludes name="Appender/NetSendAppender.cs" /> - <!-- Mono 1.0 has no support for Win32 OutputDebugString function --> - <excludes name="Appender/OutputDebugStringAppender.cs" /> - <!-- Mono 1.0 uses no native Win32 functions --> - <excludes name="helpers/NativeError.cs" /> - <!-- Mono 1.0 uses the DefaultRepositorSelector implementation of IRepositorySelector --> - <excludes name="spi/CompactRepositorySelector.cs" /> </sources> <references> <includes name="System.dll" /> @@ -467,24 +415,6 @@ define="${current.build.defines.csc}" output="${current.bin.dir}/log4net.dll"> <sources basedir="${log4net.basedir}/src"> <includes name="**/*.cs" /> - <!-- SSCLI 1.0 has no support for ADO.NET --> - <excludes name="Appender/ADONetAppender.cs" /> - <!-- SSCLI 1.0 has no support for ASP.NET --> - <excludes name="Appender/ASPNetTraceAppender.cs" /> - <!-- SSCLI 1.0 has no support for Win32 API's --> - <excludes name="Appender/ColoredConsoleAppender.cs" /> - <!-- SSCLI 1.0 has no support for System.Diagnostics.EventLog --> - <excludes name="Appender/EventLogAppender.cs" /> - <!-- SSCLI 1.0 has no support for Win32 NetMessageBufferSend function --> - <excludes name="Appender/NetSendAppender.cs" /> - <!-- SSCLI 1.0 has no support for Win32 OutputDebugString function --> - <excludes name="Appender/OutputDebugStringAppender.cs" /> - <!-- SSCLI 1.0 has no support for System.Web.Mail --> - <excludes name="Appender/SMTPAppender.cs" /> - <!-- SSCLI uses no native Win32 functions --> - <excludes name="helpers/NativeError.cs" /> - <!-- SSCLI 1.0 uses the DefaultRepositorSelector implementation of IRepositorySelector --> - <excludes name="spi/CompactRepositorySelector.cs" /> </sources> <references> <includes name="mscorlib.dll" /> 1.3 +4 -0 logging-log4net/src/AssemblyInfo.cs Index: AssemblyInfo.cs =================================================================== RCS file: /home/cvs/logging-log4net/src/AssemblyInfo.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- AssemblyInfo.cs 16 Feb 2004 02:10:51 -0000 1.2 +++ AssemblyInfo.cs 21 May 2004 22:15:32 -0000 1.3 @@ -26,10 +26,14 @@ [assembly: System.Runtime.InteropServices.ComVisible(false)] #endif +// TODO: Reinstate CLS compliant attribute for mono +// MONO 1.0 Beta seems to have an issue with CLSCompliance +#if (!MONO) // // log4net is CLS compliant // [assembly: System.CLSCompliant(true)] +#endif #if (!NETCF) // 1.4 +4 -4 logging-log4net/src/LogManager.cs Index: LogManager.cs =================================================================== RCS file: /home/cvs/logging-log4net/src/LogManager.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- LogManager.cs 26 Feb 2004 21:02:57 -0000 1.3 +++ LogManager.cs 21 May 2004 22:15:32 -0000 1.4 @@ -538,7 +538,7 @@ /// </para> /// <para> /// The <see cref="ILoggerRepository"/> created will be associated with the repository - /// specified such that a call to <see cref="GetLoggerRepository()"/> will return + /// specified such that a call to <see cref="GetRepository()"/> will return /// the same repository instance. /// </para> /// </remarks> @@ -562,7 +562,7 @@ /// <remarks> /// <para> /// The <see cref="ILoggerRepository"/> created will be associated with the repository - /// specified such that a call to <see cref="GetLoggerRepository()"/> will return + /// specified such that a call to <see cref="GetRepository()"/> will return /// the same repository instance. /// </para> /// </remarks> @@ -670,7 +670,7 @@ /// </para> /// <para> /// The <see cref="ILoggerRepository"/> created will be associated with the repository - /// specified such that a call to <see cref="GetLoggerRepository(Assembly)"/> with the + /// specified such that a call to <see cref="GetRepository(Assembly)"/> with the /// same assembly specified will return the same repository instance. /// </para> /// <param name="repositoryAssembly">The assembly to use to get the name of the repository.</param> @@ -691,7 +691,7 @@ /// <remarks> /// <para> /// The <see cref="ILoggerRepository"/> created will be associated with the repository - /// specified such that a call to <see cref="GetLoggerRepository(Assembly)"/> with the + /// specified such that a call to <see cref="GetRepository(Assembly)"/> with the /// same assembly specified will return the same repository instance. /// </para> /// <param name="repositoryAssembly">The assembly to use to get the name of the repository.</param> 1.4 +5 -0 logging-log4net/src/Appender/AdoNetAppender.cs Index: AdoNetAppender.cs =================================================================== RCS file: /home/cvs/logging-log4net/src/Appender/AdoNetAppender.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 ---
{'source': 'Apache Software Foundation Public Mail Archives'}