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}