1/*2 * Licensed to the Apache Software Foundation (ASF) under one3 * or more contributor license agreements. See the NOTICE file4 * distributed with this work for additional information5 * regarding copyright ownership. The ASF licenses this file6 * to you under the Apache License, Version 2.0 (the7 * "License"); you may not use this file except in compliance8 * with the License. You may obtain a copy of the License at9 *10 * http://www.apache.org/licenses/LICENSE-2.011 *12 * Unless required by applicable law or agreed to in writing, software13 * distributed under the License is distributed on an "AS IS" BASIS,14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.15 * See the License for the specific language governing permissions and16 * limitations under the License.17 */18package org.apache.hadoop.chukwa.inputtools.mdl;
192021import java.io.InputStream;
22import java.io.InputStreamReader;
23import java.io.BufferedReader;
24import org.apache.commons.logging.Log;
25import org.apache.commons.logging.LogFactory;
2627publicclassErStreamHandlerextends Thread {
28 InputStream inpStr;
29 String command;
30boolean record;
3132privatestatic Log log = LogFactory.getLog(ErStreamHandler.class);
3334publicErStreamHandler(InputStream inpStr, String command, boolean record) {
35this.inpStr = inpStr;
36this.command = command;
37this.record = record;
3839 }
4041publicvoid run() {
42try {
43 InputStreamReader inpStrd = new InputStreamReader(inpStr);
44 BufferedReader buffRd = new BufferedReader(inpStrd);
45 String line = null;
46 StringBuffer sb = new StringBuffer();
47while ((line = buffRd.readLine()) != null) {
48 sb.append(line);
49 }
50 buffRd.close();
5152if (record && sb.length() > 0) {
53 log.error(command + " execution error:" + sb.toString());
54 }
5556 } catch (Exception e) {
57 log.error(command + " error:" + e.getMessage());
58 }
59 }
6061 }