diff --git a/docs/index.rst b/docs/index.rst
index d13f59d..8f73ab1 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -23,7 +23,7 @@
     (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
+    https://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,
diff --git a/docs/quickstart.rst b/docs/quickstart.rst
index c864f5b..0e4622f 100644
--- a/docs/quickstart.rst
+++ b/docs/quickstart.rst
@@ -15,8 +15,14 @@
 
 .. code-block:: php
 
-    include('Logger.php');
-    $logger = Logger::getLogger("main");
+    // Verify that the class is not already loaded (for example, by other plugins or libraries)
+    if (!class_exists('Logger')) {
+        require_once('Logger.php');
+    }
+
+    // Using a unique logger name can help avoid conflicts
+    $logger = Logger::getLogger('application_name');
+
     $logger->info("This is an informational message.");
     $logger->warn("I'm not feeling so good...");
 
diff --git a/pom.xml b/pom.xml
index 90048a5..8efcd86 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,23 +36,23 @@
 	
 	<mailingLists>
 		<mailingList>
-			<name>log4php-user</name>
-			<subscribe>log4php-user-subscribe@logging.apache.org</subscribe>
-			<unsubscribe>log4php-user-unsubscribe@logging.apache.org</unsubscribe>
-			<post>log4php-user@logging.apache.org</post>
-			<archive>http://mail-archives.apache.org/mod_mbox/logging-log4php-user/</archive>
+			<name>general</name>
+			<subscribe>general-subscribe@logging.apache.org</subscribe>
+			<unsubscribe>general-unsubscribe@logging.apache.org</unsubscribe>
+			<post>general@logging.apache.org</post>
+			<archive>http://mail-archives.apache.org/mod_mbox/logging-general/</archive>
 			<otherArchives>
-				<otherArchive>http://markmail.org/search/list:org.apache.logging.log4php-user</otherArchive>
+				<otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.logging.general</otherArchive>
 			</otherArchives>
 		</mailingList>
 		<mailingList>
-			<name>log4php-dev</name>
-			<subscribe>log4php-dev-subscribe@logging.apache.org</subscribe>
-			<unsubscribe>log4php-dev-unsubscribe@logging.apache.org</unsubscribe>
-			<post>log4php-dev@logging.apache.org</post>
-			<archive>http://mail-archives.apache.org/mod_mbox/logging-log4php-dev/</archive>
+			<name>logging-dev</name>
+			<subscribe>dev-subscribe@logging.apache.org</subscribe>
+			<unsubscribe>dev-unsubscribe@logging.apache.org</unsubscribe>
+			<post>dev@logging.apache.org</post>
+			<archive>http://mail-archives.apache.org/mod_mbox/logging-dev</archive>
 			<otherArchives>
-				<otherArchive>http://markmail.org/search/list:org.apache.logging.log4php-dev</otherArchive>
+				<otherArchive>https://markmail.org/search/?q=list%3Aorg.apache.logging.dev</otherArchive>
 			</otherArchives>
 		</mailingList>
 	</mailingLists>
@@ -331,7 +331,7 @@
 							<artifactId>maven-surefire-report-plugin</artifactId>
 							<version>2.12.2</version>
 						</plugin>
-			
+
 						<!-- RAT report -->
 						<plugin>
 							<groupId>org.apache.rat</groupId>
@@ -343,14 +343,14 @@
 			</plugin>
 		</plugins>
 	</build>
-	
+
 	<dependencies>
 	</dependencies>
-	
+
 	<distributionManagement>
 		<site>
 			<id>logging.site</id>
 			<url>file:///${user.dir}/target/site-deploy</url>
 		</site>
 	</distributionManagement>
-</project>
+</project>
\ No newline at end of file
diff --git a/src/site/apt/download.apt b/src/site/apt/download.apt
index 149cc7a..9218aed 100644
--- a/src/site/apt/download.apt
+++ b/src/site/apt/download.apt
@@ -5,7 +5,7 @@
 ~~ (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
+~~      https://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,
@@ -22,7 +22,7 @@
 
 	Apache log4php\u2122 is a versatile logging framework for PHP.
 	
-	Apache log4php is distributed under the {{{http://www.apache.org/licenses/LICENSE-2.0.html} Apache License, version 2.0}}.
+	Apache log4php is distributed under the {{{https://www.apache.org/licenses/LICENSE-2.0.html} Apache License, version 2.0}}.
 
 	Version 2.3.0 is the latest stable version, available since 13.10.2012.
 
@@ -33,9 +33,9 @@
 *----------+-----------+------------+
 || Mirrors || Checksum || Signature |
 *----------+-----------+------------+
-| {{{http://www.apache.org/dyn/closer.cgi/logging/log4php/2.3.0/apache-log4php-2.3.0-src.tar.gz}apache-log4php-2.3.0-src.tar.gz}} | {{{http://www.apache.org/dist/logging/log4php/2.3.0/apache-log4php-2.3.0-src.tar.gz.md5}MD5}} | {{{http://www.apache.org/dist/logging/log4php/2.3.0/apache-log4php-2.3.0-src.tar.gz.asc}ASC}} |
+| {{{https://www.apache.org/dyn/closer.cgi/logging/log4php/2.3.0/apache-log4php-2.3.0-src.tar.gz}apache-log4php-2.3.0-src.tar.gz}} | {{{https://www.apache.org/dist/logging/log4php/2.3.0/apache-log4php-2.3.0-src.tar.gz.sha512}SHA-512}} | {{{https://www.apache.org/dist/logging/log4php/2.3.0/apache-log4php-2.3.0-src.tar.gz.asc}ASC}} |
 *----------+-----------+------------+
-| {{{http://www.apache.org/dyn/closer.cgi/logging/log4php/2.3.0/apache-log4php-2.3.0-src.zip}apache-log4php-2.3.0-src.zip}} | {{{http://www.apache.org/dist/logging/log4php/2.3.0/apache-log4php-2.3.0-src.zip.md5}MD5}} | {{{http://www.apache.org/dist/logging/log4php/2.3.0/apache-log4php-2.3.0-src.zip.asc}ASC}} |
+| {{{https://www.apache.org/dyn/closer.cgi/logging/log4php/2.3.0/apache-log4php-2.3.0-src.zip}apache-log4php-2.3.0-src.zip}} | {{{https://www.apache.org/dist/logging/log4php/2.3.0/apache-log4php-2.3.0-src.zip.sha512}SHA-512}} | {{{https://www.apache.org/dist/logging/log4php/2.3.0/apache-log4php-2.3.0-src.zip.asc}ASC}} |
 *----------+-----------+------------+
   
 * Via Composer
@@ -43,7 +43,7 @@
     Install composer in your project:
 
 +--
-curl -s http://getcomposer.org/installer | php
+curl -s https://getcomposer.org/installer | php
 +--
 
 	Create a composer.json file in your project root:
@@ -51,7 +51,7 @@
 +--
 {
     "require": {
-        "apache/log4php": "2.3.0"
+        "apache/log4php": "^2.3"
     }
 }
 +--
@@ -64,20 +64,7 @@
 
 * Pear package
 
-	To install from the Apache log4php PEAR channel:
-	
-+--
-pear channel-discover pear.apache.org/log4php
-pear install log4php/Apache_log4php
-+--
-	
-	Alternatively, the PEAR package can be downloaded from:
-
-*----------+-----------+------------+
-|| Mirrors || Checksum || Signature |
-*----------+-----------+------------+
-| {{{http://www.apache.org/dyn/closer.cgi/logging/log4php/2.3.0/Apache_log4php-2.3.0.tgz}Apache_log4php-2.3.0.tgz}} | {{{http://www.apache.org/dist/logging/log4php/2.3.0/Apache_log4php-2.3.0.tgz.md5}MD5}} | {{{http://www.apache.org/dist/logging/log4php/2.3.0/Apache_log4php-2.3.0.tgz.asc}ASC}} |
-*----------+-----------+------------+
+	PEAR is no longer supported.
   
 * From repository  
   
@@ -89,8 +76,8 @@
 	
 * Please mind the signatures
 
-	It is important that you verify the integrity of the downloaded files using the PGP or MD5 signatures. 
-	Please read {{{http://httpd.apache.org/dev/verification.html}Verifying Apache HTTP Server Releases}} for more
+	It is important that you verify the integrity of the downloaded files using the PGP or SHA512 signatures.
+	Please read {{{https://httpd.apache.org/dev/verification.html}Verifying Apache HTTP Server Releases}} for more
 	information on why you should verify our releases.
 
 	The PGP signatures can be verified using PGP or GPG. First download the {{{http://www.apache.org/dist/logging/log4php/KEYS}KEYS}}
@@ -113,4 +100,4 @@
 
 	Apache log4php 2.3.0 is signed by Ivan Habunek (key 0BD936F1).
 
-	Alternatively, you can verify the MD5 signature on the files.
\ No newline at end of file
+	Alternatively, you can verify the SHA512 signature on the files.
\ No newline at end of file
diff --git a/src/site/apt/index.apt b/src/site/apt/index.apt
index 2203536..d56a9ef 100644
--- a/src/site/apt/index.apt
+++ b/src/site/apt/index.apt
@@ -5,7 +5,7 @@
 ~~ (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
+~~	    https://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,
diff --git a/src/site/apt/privacy-policy.apt b/src/site/apt/privacy-policy.apt
index ea16972..d9dd8bc 100644
--- a/src/site/apt/privacy-policy.apt
+++ b/src/site/apt/privacy-policy.apt
@@ -5,7 +5,7 @@
 ~~ (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
+~~	  https://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,
diff --git a/src/site/apt/volunteering.apt b/src/site/apt/volunteering.apt
index 9b660c2..b4cc304 100644
--- a/src/site/apt/volunteering.apt
+++ b/src/site/apt/volunteering.apt
@@ -5,7 +5,7 @@
 ~~ (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
+~~      https://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,
@@ -21,7 +21,7 @@
 On Volunteering
 
   If you want to volunteer and help with developing Apache log4php, you are highly encouraged to 
-  read {{{http://www.apache.org/foundation/getinvolved.html}Apache getting involved}}. If you have
+  read {{{https://www.apache.org/foundation/getinvolved.html}Apache getting involved}}. If you have
   questions on that document, we might be able to answer them on the developers mailinglist.
 
   The best way to contribute is to identify for yourself things that you think are broken, or could
@@ -34,7 +34,7 @@
   * Have a look at the {{{https://issues.apache.org/jira/browse/LOG4PHP}bug reports}} for the 
     log4php project, and seen any bugs that you can create a patch for.
 
-  * Check out the project {{{http://wiki.apache.org/logging-log4php/TODO}todo list}} for things that
+  * Check out the project {{{https://cwiki.apache.org/confluence/display/LOGGINGLOG4PHP/TODO}todo list}} for things that
     have already been thought about, but just are not done yet.
     
   * If you are apt at graphic design, Apache log4php is 
