001: /* ====================================================================
002: * The Apache Software License, Version 1.1
003: *
004: * Copyright (c) 1997-2003 The Apache Software Foundation. All rights
005: * reserved.
006: *
007: * Redistribution and use in source and binary forms, with or without
008: * modification, are permitted provided that the following conditions
009: * are met:
010: *
011: * 1. Redistributions of source code must retain the above copyright
012: * notice, this list of conditions and the following disclaimer.
013: *
014: * 2. Redistributions in binary form must reproduce the above copyright
015: * notice, this list of conditions and the following disclaimer in
016: * the documentation and/or other materials provided with the
017: * distribution.
018: *
019: * 3. The end-user documentation included with the redistribution,
020: * if any, must include the following acknowledgment:
021: * "This product includes software developed by the
022: * Apache Software Foundation (http://www.apache.org/)."
023: * Alternately, this acknowledgment may appear in the software
024: * itself, if and wherever such third-party acknowledgments
025: * normally appear.
026: *
027: * 4. The names "Jakarta", "Avalon", and "Apache Software Foundation"
028: * must not be used to endorse or promote products derived from this
029: * software without prior written permission. For written
030: * permission, please contact apache@apache.org.
031: *
032: * 5. Products derived from this software may not be called "Apache",
033: * nor may "Apache" appear in their name, without prior written
034: * permission of the Apache Software Foundation.
035: *
036: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
037: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
038: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
039: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
040: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
041: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
042: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
043: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
044: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
045: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
046: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
047: * SUCH DAMAGE.
048: * ====================================================================
049: *
050: * This software consists of voluntary contributions made by many
051: * individuals on behalf of the Apache Software Foundation. For more
052: * information on the Apache Software Foundation, please see
053: * <http://www.apache.org/>.
054: */
055: package org.apache.log.output;
056:
057: import java.io.File;
058: import java.io.FileWriter;
059: import java.io.IOException;
060:
061: /**
062: * This is a basic Output log target that writes to a file.
063: *
064: * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
065: * @author <a href="mailto:mcconnell@osm.net">Stephen McConnell</a>
066: * @deprecated Use org.apache.log.output.io.FileTarget as this class is not thread safe
067: */
068: public class FileOutputLogTarget extends DefaultOutputLogTarget {
069: private boolean m_append = false;
070:
071: public FileOutputLogTarget() {
072: }
073:
074: public FileOutputLogTarget(final String filename)
075: throws IOException {
076: setFilename(filename);
077: }
078:
079: public FileOutputLogTarget(final String filename,
080: final boolean append) throws IOException {
081: m_append = append;
082: setFilename(filename);
083: }
084:
085: public void setAppend(final boolean append) {
086: m_append = append;
087: }
088:
089: /**
090: * Overwrites the m_output value in the super class through
091: * assignment of an OutputStreamWriter based on a supplied
092: * file path. Side-effects include the creation of a
093: * directory path based relative to the supplied filename.
094: *
095: * @param filename path and filename for log destination
096: */
097: public void setFilename(final String filename) throws IOException {
098: final File file = new File(filename);
099: final File parent = file.getAbsoluteFile().getParentFile();
100: if (!parent.exists())
101: parent.mkdirs();
102:
103: m_output = new FileWriter(filename, m_append);
104: }
105: }
|