/* * 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. */ package examples.lf5.InitUsingMultipleAppenders; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import java.io.IOException; import java.net.URL; /** * This example shows how to use LogFactor5 with other Log4J appenders * (In this case the RollingFileAppender). * * The following lines can be added to the log4j.properties file or a * standard Java properties file. * * # Two appenders are registered with the root of the Category tree. * * log4j.rootCategory=, A1, R * * # A1 is set to be a LF5Appender which outputs to a swing * # logging console. * * log4j.appender.A1=org.apache.log4j.lf5.LF5Appender * * # R is the RollingFileAppender that outputs to a rolling log * # file called rolling_log_file.log. * * log4j.appender.R=org.apache.log4j.RollingFileAppender * log4j.appender.R.File=rolling_log_file.log * * log4j.appender.R.layout=org.apache.log4j.PatternLayout * log4j.appender.R.layout.ConversionPattern=Date - %d{DATE}%nPriority * - %p%nThread - %t%nCategory - %c%nLocation - %l%nMessage - %m%n%n * log4j.appender.R.MaxFileSize=100KB * log4j.appender.R.MaxBackupIndex=1 * * To make this example work, either run the InitUsingMultipleAppenders.bat * file located in the examples folder or run it at the command line. If you * are running the example at the command line, you must ensure that the * example.properties file is in your classpath. * * @author Brent Sprecher * @author Brad Marlborough */ // Contributed by ThoughtWorks Inc. public class InitUsingMultipleAppenders { //-------------------------------------------------------------------------- // Constants: //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Protected Variables: //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Private Variables: //-------------------------------------------------------------------------- private static Logger logger = Logger.getLogger(InitUsingMultipleAppenders.class); //-------------------------------------------------------------------------- // Constructors: //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Public Methods: //-------------------------------------------------------------------------- public static void main(String argv[]) { // Use a PropertyConfigurator to initialize from a property file. String resource = "/examples/lf5/InitUsingMultipleAppenders/example.properties"; URL configFileResource = InitUsingMultipleAppenders.class.getResource(resource); PropertyConfigurator.configure(configFileResource); // Add a bunch of logging statements ... logger.debug("Hello, my name is Homer Simpson."); logger.debug("Hello, my name is Lisa Simpson."); logger.debug("Hello, my name is Marge Simpson."); logger.debug("Hello, my name is Bart Simpson."); logger.debug("Hello, my name is Maggie Simpson."); logger.info("We are the Simpsons!"); logger.info("Mmmmmm .... Chocolate."); logger.info("Homer likes chocolate"); logger.info("Doh!"); logger.info("We are the Simpsons!"); logger.warn("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."); logger.warn("Mmm...forbidden donut."); logger.warn("D'oh! A deer! A female deer!"); logger.warn("Truly, yours is a butt that won't quit." + "- Bart, writing as Woodrow to Ms. Krabappel."); logger.error("Dear Baby, Welcome to Dumpsville. Population: you."); logger.error("Dear Baby, Welcome to Dumpsville. Population: you.", new IOException("Dumpsville, USA")); logger.error("Mr. Hutz, are you aware you're not wearing pants?"); logger.error("Mr. Hutz, are you aware you're not wearing pants?", new IllegalStateException("Error !!")); logger.fatal("Eep."); logger.fatal("Mmm...forbidden donut.", new SecurityException("Fatal Exception")); logger.fatal("D'oh! A deer! A female deer!"); logger.fatal("Mmmmmm .... Chocolate.", new SecurityException("Fatal Exception")); } //-------------------------------------------------------------------------- // Protected Methods: //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Private Methods: //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Nested Top-Level Classes or Interfaces: //-------------------------------------------------------------------------- }