diff --git a/contribs/MarkDouglas/Log.txt b/contribs/MarkDouglas/Log.txt
index f773f53..d50d537 100644
--- a/contribs/MarkDouglas/Log.txt
+++ b/contribs/MarkDouglas/Log.txt
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
 INFO   (   Server:main      ) systemsunion.LoggingServer.SocketServer2 - Connected to client at RDDSOWE2/129.153.78.195
 INFO   (   Server:main      ) systemsunion.LoggingServer.SocketServer2 - Starting new socket node.
 INFO   (   Server:main      ) systemsunion.LoggingServer.SocketServer2 - Waiting to accept a new client.
diff --git a/examples/lf5/OpeningLogFiles/sample.log b/examples/lf5/OpeningLogFiles/sample.log
deleted file mode 100644
index 1adbea5..0000000
--- a/examples/lf5/OpeningLogFiles/sample.log
+++ /dev/null
@@ -1,184 +0,0 @@
-[slf5s.start]26 Jul 2001 15:54:44,673[slf5s.DATE]
-DEBUG[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:102)[slf5s.LOCATION]
-Hello, my name is Homer Simpson.[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,743[slf5s.DATE]
-DEBUG[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:103)[slf5s.LOCATION]
-Hello, my name is Lisa Simpson.[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,743[slf5s.DATE]
-DEBUG[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:104)[slf5s.LOCATION]
-Hello, my name is Marge Simpson.[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,753[slf5s.DATE]
-DEBUG[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:105)[slf5s.LOCATION]
-Hello, my name is Bart Simpson.[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,793[slf5s.DATE]
-DEBUG[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:106)[slf5s.LOCATION]
-Hello, my name is Maggie Simpson.[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,793[slf5s.DATE]
-INFO[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:108)[slf5s.LOCATION]
-We are the Simpsons![slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,803[slf5s.DATE]
-INFO[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:109)[slf5s.LOCATION]
-Mmmmmm .... Chocolate.[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,803[slf5s.DATE]
-INFO[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:110)[slf5s.LOCATION]
-Homer likes chocolate[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,803[slf5s.DATE]
-INFO[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:111)[slf5s.LOCATION]
-Doh![slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,803[slf5s.DATE]
-INFO[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:112)[slf5s.LOCATION]
-We are the Simpsons![slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,803[slf5s.DATE]
-WARN[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:114)[slf5s.LOCATION]
-Bart: I am through with working! Working is for chumps!Homer: Son, I'm proud of you. I was twice your age before I figured that out.[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,803[slf5s.DATE]
-WARN[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:117)[slf5s.LOCATION]
-Mmm...forbidden donut.[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,803[slf5s.DATE]
-WARN[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:118)[slf5s.LOCATION]
-D'oh! A deer! A female deer![slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,803[slf5s.DATE]
-WARN[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:119)[slf5s.LOCATION]
-Truly, yours is a butt that won't quit.- Bart, writing as Woodrow to Ms. Krabappel.[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,803[slf5s.DATE]
-ERROR[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:122)[slf5s.LOCATION]
-Dear Baby, Welcome to Dumpsville. Population: you.[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,903[slf5s.DATE]
-ERROR[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:123)[slf5s.LOCATION]
-Dear Baby, Welcome to Dumpsville. Population: you.[slf5s.MESSAGE]
-
-java.io.IOException: Dumpsville, USA
-	at examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:123)
-[slf5s.start]26 Jul 2001 15:54:44,903[slf5s.DATE]
-ERROR[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:125)[slf5s.LOCATION]
-Mr. Hutz, are you aware you're not wearing pants?[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:44,903[slf5s.DATE]
-ERROR[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:126)[slf5s.LOCATION]
-Mr. Hutz, are you aware you're not wearing pants?[slf5s.MESSAGE]
-
-java.lang.IllegalStateException: Error !!
-	at examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:126)
-[slf5s.start]26 Jul 2001 15:54:44,903[slf5s.DATE]
-FATAL[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:130)[slf5s.LOCATION]
-Eep.[slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:45,063[slf5s.DATE]
-FATAL[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:131)[slf5s.LOCATION]
-Mmm...forbidden donut.[slf5s.MESSAGE]
-
-java.lang.SecurityException: Fatal Exception
-	at examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:131)
-[slf5s.start]26 Jul 2001 15:54:45,063[slf5s.DATE]
-FATAL[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:133)[slf5s.LOCATION]
-D'oh! A deer! A female deer![slf5s.MESSAGE]
-
-[slf5s.start]26 Jul 2001 15:54:45,063[slf5s.DATE]
-FATAL[slf5s.PRIORITY]
-[slf5s.NDC]
-main[slf5s.THREAD]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders[slf5s.CATEGORY]
-examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:134)[slf5s.LOCATION]
-Mmmmmm .... Chocolate.[slf5s.MESSAGE]
-
-java.lang.SecurityException: Fatal Exception
-	at examples.InitUsingMultipleAppenders.InitUsingMultipleAppenders.main(InitUsingMultipleAppenders.java:134)
diff --git a/src/performance/java/org/apache/log4j/performance/history/FALKNIS.logging b/src/performance/java/org/apache/log4j/performance/history/FALKNIS.logging
index 41d0a98..6838421 100644
--- a/src/performance/java/org/apache/log4j/performance/history/FALKNIS.logging
+++ b/src/performance/java/org/apache/log4j/performance/history/FALKNIS.logging
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
 All tests done with java version "1.2.2"
 Classic VM (J2RE 1.2.2 IBM build cadev-19991008 (JIT enabled: jitc))
 -------------- Wed Dec 8 20:55:19 MET 1999 ---------------
diff --git a/src/performance/java/org/apache/log4j/performance/history/GIL.logging b/src/performance/java/org/apache/log4j/performance/history/GIL.logging
index ff43f90..e282a5f 100644
--- a/src/performance/java/org/apache/log4j/performance/history/GIL.logging
+++ b/src/performance/java/org/apache/log4j/performance/history/GIL.logging
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
 GIL is a AMD Duron running at 800 MHz running W2000 and Sun's JDK 1.3.
 
 NullAppender:
diff --git a/src/performance/java/org/apache/log4j/performance/history/NAPOLI.logging b/src/performance/java/org/apache/log4j/performance/history/NAPOLI.logging
index 47642e6..418c459 100644
--- a/src/performance/java/org/apache/log4j/performance/history/NAPOLI.logging
+++ b/src/performance/java/org/apache/log4j/performance/history/NAPOLI.logging
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
 All tests are done using Suns's 1.1.7U JDK on NT
 -------------- Sometime in 1999 ---------------
 Using OutputStream.
diff --git a/src/performance/java/org/apache/log4j/performance/history/TORINO.logging b/src/performance/java/org/apache/log4j/performance/history/TORINO.logging
index 2a9eec6..67f32b2 100644
--- a/src/performance/java/org/apache/log4j/performance/history/TORINO.logging
+++ b/src/performance/java/org/apache/log4j/performance/history/TORINO.logging
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
 -------------- Fri Nov 5 23:52:59 CET 1999 ---------------
 Append based logging
 Each ttcc log operation took about 342.3 microsec.
