diff options
Diffstat (limited to 'subsonic-main/src/main/java/net/sourceforge/subsonic/io/InputStreamReaderThread.java')
-rw-r--r-- | subsonic-main/src/main/java/net/sourceforge/subsonic/io/InputStreamReaderThread.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/io/InputStreamReaderThread.java b/subsonic-main/src/main/java/net/sourceforge/subsonic/io/InputStreamReaderThread.java new file mode 100644 index 00000000..1019f73a --- /dev/null +++ b/subsonic-main/src/main/java/net/sourceforge/subsonic/io/InputStreamReaderThread.java @@ -0,0 +1,63 @@ +/* + This file is part of Subsonic. + + Subsonic is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Subsonic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Subsonic. If not, see <http://www.gnu.org/licenses/>. + + Copyright 2009 (C) Sindre Mehus + */ +package net.sourceforge.subsonic.io; + +import net.sourceforge.subsonic.*; +import org.apache.commons.io.*; + +import java.io.*; + +/** + * Utility class which reads everything from an input stream and optionally logs it. + * + * @see TranscodeInputStream + * @author Sindre Mehus + */ +public class InputStreamReaderThread extends Thread { + + private static final Logger LOG = Logger.getLogger(InputStreamReaderThread.class); + + private InputStream input; + private String name; + private boolean log; + + public InputStreamReaderThread(InputStream input, String name, boolean log) { + super(name + " InputStreamLogger"); + this.input = input; + this.name = name; + this.log = log; + } + + public void run() { + BufferedReader reader = null; + try { + reader = new BufferedReader(new InputStreamReader(input)); + for (String line = reader.readLine(); line != null; line = reader.readLine()) { + if (log) { + LOG.debug('(' + name + ") " + line); + } + } + } catch (IOException x) { + // Intentionally ignored. + } finally { + IOUtils.closeQuietly(reader); + IOUtils.closeQuietly(input); + } + } +} |