19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.tools.layoutlib.create;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.PrintWriter;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.StringWriter;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class Log {
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private boolean mVerbose = false;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void setVerbose(boolean verbose) {
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mVerbose = verbose;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void debug(String format, Object... args) {
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (mVerbose) {
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            info(format, args);
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void info(String format, Object... args) {
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String s = String.format(format, args);
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        outPrintln(s);
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void error(String format, Object... args) {
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String s = String.format(format, args);
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        errPrintln(s);
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void exception(Throwable t, String format, Object... args) {
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        StringWriter sw = new StringWriter();
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        PrintWriter pw = new PrintWriter(sw);
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        t.printStackTrace(pw);
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        pw.flush();
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        error(format + "\n" + sw.toString(), args);
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** for unit testing */
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected void errPrintln(String msg) {
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        System.err.println(msg);
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /** for unit testing */
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected void outPrintln(String msg) {
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        System.out.println(msg);
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
65