17c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala/*
27c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala * Copyright (C) 2014 The Android Open Source Project
37c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala *
47c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala * Licensed under the Apache License, Version 2.0 (the "License");
57c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala * you may not use this file except in compliance with the License.
67c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala * You may obtain a copy of the License at
77c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala *
87c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala *      http://www.apache.org/licenses/LICENSE-2.0
97c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala *
107c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala * Unless required by applicable law or agreed to in writing, software
117c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala * distributed under the License is distributed on an "AS IS" BASIS,
127c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala * See the License for the specific language governing permissions and
147c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala * limitations under the License.
157c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala */
167c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala
177c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvalapackage com.android.testingcamera2;
187c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala
197c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvalaimport java.util.Locale;
207c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala
217c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvalaimport android.util.Log;
227c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala
237c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvalapublic class TLog {
247c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala
257c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    private static Logger mLogger;
267c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    private static final String TAG = "TestingCamera2";
277c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala
287c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    synchronized static public void setLogger(Logger logger) {
297c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        mLogger = logger;
307c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    }
317c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala
327c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    /**
337c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * Log an informative message to the current log destination and to the system log.
347c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * Supports formatting in the style of String.format()
357c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     *
367c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * @param text The text to print out, with optional formatting specifiers
377c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * @param args Arguments to fill in to the string
387c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     */
397c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    synchronized static public void i(String text, Object... args) {
407c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        if (args.length > 0) {
417c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala            text = String.format(Locale.US, text, args);
427c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        }
437c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        android.util.Log.i(TAG, text);
447c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        if (mLogger != null) {
457c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala            mLogger.addToLog(text, false);
467c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        }
477c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    }
487c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala
497c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    /**
507c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * Log an error message to the current log destination and to the system log.
517c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * Supports formatting in the style of String.format()
527c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     *
537c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * @param text The text to print out, with optional formatting specifiers
547c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * @param args Arguments to fill in to the string
557c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     */
567c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    synchronized static public void e(String text, Object... args) {
577c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        if (args.length > 0) {
587c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala            text = String.format(Locale.US, text, args);
597c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        }
607c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        android.util.Log.e(TAG, text);
617c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        if (mLogger != null) {
627c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala            mLogger.addToLog(text, true);
637c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        }
647c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    }
657c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala
667c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    /**
677c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * Log an error message to the current log destination and to the system log,
687c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * including the exception stack trace.
697c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     *
707c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * <p>The trace will be added after the main error message.  Supports formatting in
717c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * the style of String.format()</p>
727c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     *
737c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * @param text The text to print out, with optional formatting specifiers
747c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * @param e The throwable for the error
757c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     * @param args Arguments to fill in to the string
767c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala     */
777c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    synchronized static public void e(String text, Throwable e, Object... args) {
787c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        text = String.format("%s\n%s", text, Log.getStackTraceString(e));
797c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        if (args.length > 0) {
807c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala            text = String.format(Locale.US, text, args);
817c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        }
827c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        android.util.Log.e(TAG, text);
837c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        if (mLogger != null) {
847c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala            mLogger.addToLog(text, true);
857c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        }
867c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    }
877c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala
887c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    public interface Logger {
897c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala        public void addToLog(String text, boolean error);
907c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala    }
917c5f2935442e974ce30158e35d142f7e2c3ee1a2Eino-Ville Talvala}