Recommended Upgrades for log4j-1.2.14
Hi All, I am currently using log4j version of log4j-1.2.14 and I am finding answer for the below questions and I couldn't get proper answers from the site http://logging.apache.org. So anyone could help me out to find out the answers for me or atleast tell me where I can get information for below questions: 1. What are the new versions of log4j? 2. Any recommendations to upgrade from log4j version 1.2.14. 3. What are the new Challenges that log4j-1.2.14 is facing currently? 4. Any architect relevant articles for latest versions of log4j 5. Ensure the log4j-1.2.14 is still relevant and is not becoming obsolete by another or competing tool 6. What are the critical security patch that are needed for log4j-1.2.14? 7. What are the critical security patch in some other software that requires this log4j-1.2.14 to be upgraded? 8. What are important new features that would improve development significantly? 9. Whether current version(log4j-1.2.14) is more than 2-3 years old or has became out-of-date? Sincerely, - To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org
Re: locating my log4j.properties file
It's great that you got it working, but it doesn't appear you fully understand why... configure(String) [1] takes a java.io.File path. Given that you have provided a relative path, rather than a fully qualified one, location of the file is going to be relative to the directory from which you started your JVM. In your case, it happens to be the same directory in which your Jar file exists. But you can't depend on this because your JVM may be started from another directory and this relative location may become invalid. And you generally want to avoid the File system anyway in your Java programs to keep them from being coupled to a particular environment setup. For these reasons, I suggest that you use a URL [2] instead and load your config file from the classpath, e.g., URL url = getClass().getClassLoader().getResource(com/mypackage/log4j-config-file.properties); PropertyConfigurator.configure(url); But lets step back for a second. Unless you are doing something special as far as loading the config file, there's no reason you can't rename your config file to log4j.properties. This will get picked up automatically without you having to manually configure Log4j. Just place it in the root package on your classpath and it will get picked up (unless log4j.xml also exists, in which case it will be used in preference to log4j.properties). The other option, which also avoids manual, programmatic, configuration is to set the property log4j.configuration, e.g., Example of a URL on Windows... -Dlog4j.configuration=file:/C:/some/path/to/my/log4j-config-file.properties Example of a URL on UNIX... -Dlog4j.configuration=file:/some/path/to/my/log4j-config-file.properties [1] http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html#configure%28java.lang.String%29 [2] http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html#configure%28java.net.URL%29 Jake On 10/8/2010 9:45 AM, Don Raikes wrote: Christian, Thanks, with the -Dlog4j.debug, I was able to figure out that log4j was looking for a default log4j.xml file which I do not have, but I then copied the a11yMonitor-log4j.properties into the same folder as my test application's jar file and that worked. Getting log4j output now! -Original Message- From: Christian Grobmeier [mailto:grobme...@gmail.com] Sent: Thursday, October 07, 2010 10:40 PM To: Log4J Users List Subject: Re: locating my log4j.properties file Hello start your programm with: -Dlog4j.debug This will show you information were it looks for your properties file. It usually helps me in this case Cheers Christian On Fri, Oct 8, 2010 at 12:39 AM, Don Raikes don.rai...@oracle.com wrote: Hello, I have a java project which I compile and then package in a jar file which goes into my jdk_home\jre\lib\ext folder (it is an extension to my jdk). In the main class of my application I tell log4j to use a specific log4j.properties file PropertyConfigurator.configure(a11yMonitor-log4j.properties); Where do I actually place the a11yMonitor-log4j.properties file? I tried in jdk_home\jre\lib and jdk_home\jre\lib\ext but both times I tried to run my extension, I get a message saying that log4j cannot find the properties file. Any help would be greatly appreciated. -- Sincerely, HYPERLINK http://www.oracle.com; \nOracle Donald Raikes | Accessibility Specialist Phone: HYPERLINK tel:+16028246213+16028246213 | Mobile: HYPERLINK tel:+15202717608+15202717608 | VOIP: HYPERLINK tel:+16028246213+16028246213 Oracle JDeveloper Quality Assurance | Tucson, Arizona HYPERLINK http://www.oracle.com/commitment; \nGreen Oracle Oracle is committed to developing practices and products that help protect the environment - To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org - To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org - To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org
RE: locating my log4j.properties file
Jake, I will take all this into account in my final production setup. For now I was using the log4j as a debugging tool for myself, so just wanted to figure out how it works. -Original Message- From: Jacob Kjome [mailto:h...@visi.com] Sent: Friday, October 08, 2010 10:51 AM To: Log4J Users List Subject: Re: locating my log4j.properties file It's great that you got it working, but it doesn't appear you fully understand why... configure(String) [1] takes a java.io.File path. Given that you have provided a relative path, rather than a fully qualified one, location of the file is going to be relative to the directory from which you started your JVM. In your case, it happens to be the same directory in which your Jar file exists. But you can't depend on this because your JVM may be started from another directory and this relative location may become invalid. And you generally want to avoid the File system anyway in your Java programs to keep them from being coupled to a particular environment setup. For these reasons, I suggest that you use a URL [2] instead and load your config file from the classpath, e.g., URL url = getClass().getClassLoader().getResource(com/mypackage/log4j-config-file.properties); PropertyConfigurator.configure(url); But lets step back for a second. Unless you are doing something special as far as loading the config file, there's no reason you can't rename your config file to log4j.properties. This will get picked up automatically without you having to manually configure Log4j. Just place it in the root package on your classpath and it will get picked up (unless log4j.xml also exists, in which case it will be used in preference to log4j.properties). The other option, which also avoids manual, programmatic, configuration is to set the property log4j.configuration, e.g., Example of a URL on Windows... -Dlog4j.configuration=file:/C:/some/path/to/my/log4j-config-file.properties Example of a URL on UNIX... -Dlog4j.configuration=file:/some/path/to/my/log4j-config-file.properties [1] http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html#configure%28java.lang.String%29 [2] http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html#configure%28java.net.URL%29 Jake On 10/8/2010 9:45 AM, Don Raikes wrote: Christian, Thanks, with the -Dlog4j.debug, I was able to figure out that log4j was looking for a default log4j.xml file which I do not have, but I then copied the a11yMonitor-log4j.properties into the same folder as my test application's jar file and that worked. Getting log4j output now! -Original Message- From: Christian Grobmeier [mailto:grobme...@gmail.com] Sent: Thursday, October 07, 2010 10:40 PM To: Log4J Users List Subject: Re: locating my log4j.properties file Hello start your programm with: -Dlog4j.debug This will show you information were it looks for your properties file. It usually helps me in this case Cheers Christian On Fri, Oct 8, 2010 at 12:39 AM, Don Raikes don.rai...@oracle.com wrote: Hello, I have a java project which I compile and then package in a jar file which goes into my jdk_home\jre\lib\ext folder (it is an extension to my jdk). In the main class of my application I tell log4j to use a specific log4j.properties file PropertyConfigurator.configure(a11yMonitor-log4j.properties); Where do I actually place the a11yMonitor-log4j.properties file? I tried in jdk_home\jre\lib and jdk_home\jre\lib\ext but both times I tried to run my extension, I get a message saying that log4j cannot find the properties file. Any help would be greatly appreciated. -- Sincerely, HYPERLINK http://www.oracle.com; \nOracle Donald Raikes | Accessibility Specialist Phone: HYPERLINK tel:+16028246213+16028246213 | Mobile: HYPERLINK tel:+15202717608+15202717608 | VOIP: HYPERLINK tel:+16028246213+16028246213 Oracle JDeveloper Quality Assurance | Tucson, Arizona HYPERLINK http://www.oracle.com/commitment; \nGreen Oracle Oracle is committed to developing practices and products that help protect the environment - To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org - To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org - To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-user-h...@logging.apache.org - To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org For additional commands, e-mail:
RE: locating my log4j.properties file
Hello again, Ok so I solved some of my issues, but now I have others. In my log4j.properties file, I have configured 3 appenders. A1 console apppender A2 file appender to my errors.log file A3 file appender to my fulltrace log file (see below) When I run the test program using -Dlog4j.debug, I can see that all the appenders are being created no problem. However, nothing is being written to either of my file appenders a2 or a3 even though my console appender (a1) is receiving all the output). Any suggestions on how I have misconfigured things would be appreciated. -- beginning of ma11yMonitor-log4j.properties --- # 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. # Attach appender A1 to root. Set root level to Level.DEBUG. log4j.rootLogger=DEBUG, A1 # A1 is set to be a FileAppender sending its output to # System.out. However, only error messages and above will be printed # in A1 because A1's threshold is set to Level.ERROR. # The fact that the root level is set to Prority.DEBUG only influences # log requests made to the root logger. It has no influence on the # *appenders* attached to root. log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.Threshold=DEBUG log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%p [%t] %c{2} (%M:%L) - %m%n # Set the level of the logger named org.apache.log4j.errors to # Level.INFO, attach appender A2. log4j.logger.org.apache.log4j.errors=ERROR, A2 # Appender A2 writes to the file test in user's home. log4j.appender.A2=org.apache.log4j.FileAppender log4j.appender.A2.File=${user.home}/a11yMonitor-errors.log # Truncate 'test' if it aleady exists. log4j.appender.A2.Append=false # Appender A2 uses the PatternLayout. log4j.appender.A2.layout=org.apache.log4j.PatternLayout log4j.appender.A2.layout.ConversionPattern=%5r %-5p [%t] %c{2} - %m%n log4j.logger.org.apache.log4j.fulltrace=DEBUG, A3 # Appender A2 writes to the file a11y-fulltrace.log in user's home. log4j.appender.A3=org.apache.log4j.FileAppender log4j.appender.A3.File=${user.home}/a11yMonitor-fulltrace.log # Truncate 'test' if it aleady exists. log4j.appender.A3.Append=false # Appender A3 uses the PatternLayout. log4j.appender.A3.layout=org.apache.log4j.PatternLayout log4j.appender.A3.layout.ConversionPattern=%5r %-5p [%t] %c{2} - %m%n --- end of a11yMonitor-log4j.properties --- --- class constructor --- public class Monitor implements FocusListener, WindowFocusListener { static final Logger logger = Logger.getLogger(Monitor.class); private String log4jPropertiesFile = null; public Monitor() { log4jPropertiesFile = System.getProperty(user.home) + System.getProperty(file.separator) + a11yMonitor-log4j.properties; PropertyConfigurator.configure(log4jPropertiesFile); setupListeners(); logger.info(Loading a11y.Monitor); } --- end of class constructor --- I have logger statements inside each of my class's methods with level set to info. -Original Message- From: Christian Grobmeier [mailto:grobme...@gmail.com] Sent: Thursday, October 07, 2010 10:40 PM To: Log4J Users List Subject: Re: locating my log4j.properties file Hello start your programm with: -Dlog4j.debug This will show you information were it looks for your properties file. It usually helps me in this case Cheers Christian On Fri, Oct 8, 2010 at 12:39 AM, Don Raikes don.rai...@oracle.com wrote: Hello, I have a java project which I compile and then package in a jar file which goes into my jdk_home\jre\lib\ext folder (it is an extension to my jdk). In the main class of my application I tell log4j to use a specific log4j.properties file PropertyConfigurator.configure(a11yMonitor-log4j.properties); Where do I actually place the a11yMonitor-log4j.properties file? I tried in jdk_home\jre\lib and jdk_home\jre\lib\ext but both times I tried to run my extension, I get a message saying that log4j cannot find the properties file. Any help would be greatly appreciated. -- Sincerely, HYPERLINK http://www.oracle.com; \nOracle Donald Raikes | Accessibility Specialist Phone: HYPERLINK tel:+16028246213+16028246213 | Mobile: HYPERLINK