| /* |
| * 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: |
| //-------------------------------------------------------------------------- |
| |
| } |