17bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org/* 27bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * libjingle 37bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * Copyright 2013, Google Inc. 47bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * 57bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * Redistribution and use in source and binary forms, with or without 67bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * modification, are permitted provided that the following conditions are met: 77bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * 87bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * 1. Redistributions of source code must retain the above copyright notice, 97bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * this list of conditions and the following disclaimer. 107bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * 2. Redistributions in binary form must reproduce the above copyright notice, 117bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * this list of conditions and the following disclaimer in the documentation 127bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * and/or other materials provided with the distribution. 137bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * 3. The name of the author may not be used to endorse or promote products 147bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * derived from this software without specific prior written permission. 157bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * 167bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 177bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 187bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 197bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 207bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 217bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 227bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 237bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 247bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 257bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 267bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org */ 277bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org 287bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.orgpackage org.webrtc; 297bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org 307bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.orgimport java.util.EnumSet; 317bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org 327bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org/** Java wrapper for WebRTC & libjingle logging. */ 337bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.orgpublic class Logging { 347bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org static { 357bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org System.loadLibrary("jingle_peerconnection_so"); 367bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org } 377bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org 387bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org // Keep in sync with webrtc/common_types.h:TraceLevel. 397bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org public enum TraceLevel { 407bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_NONE(0x0000), 417bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_STATEINFO(0x0001), 427bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_WARNING(0x0002), 437bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_ERROR(0x0004), 447bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_CRITICAL(0x0008), 457bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_APICALL(0x0010), 467bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_DEFAULT(0x00ff), 477bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_MODULECALL(0x0020), 487bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_MEMORY(0x0100), 497bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_TIMER(0x0200), 507bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_STREAM(0x0400), 517bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_DEBUG(0x0800), 527bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_INFO(0x1000), 537bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_TERSEINFO(0x2000), 547bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TRACE_ALL(0xffff); 557bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org 567bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org public final int level; 577bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org TraceLevel(int level) { 587bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org this.level = level; 597bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org } 607bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org }; 617bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org 627bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org // Keep in sync with talk/base/logging.h:LoggingSeverity. 637bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org public enum Severity { 647bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org LS_SENSITIVE, LS_VERBOSE, LS_INFO, LS_WARNING, LS_ERROR, 657bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org }; 667bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org 677bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org 68ae6132d756759f15b2f1195e62f6a8ef90ed4548andrew@webrtc.org // Enable tracing to |path| of messages of |levels| and |severity|. 69ae6132d756759f15b2f1195e62f6a8ef90ed4548andrew@webrtc.org // On Android, use "logcat:" for |path| to send output there. 707bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org public static void enableTracing( 717bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org String path, EnumSet<TraceLevel> levels, Severity severity) { 727bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org int nativeLevel = 0; 737bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org for (TraceLevel level : levels) { 747bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org nativeLevel |= level.level; 757bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org } 767bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org nativeEnableTracing(path, nativeLevel, severity.ordinal()); 777bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org } 787bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org 797bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org private static native void nativeEnableTracing( 807bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org String path, int nativeLevels, int nativeSeverity); 817bf94f9c4ab08aa82f78018d8ba363b5b60b05edwu@webrtc.org} 82