11package it .tdlight ;
22
33import it .tdlight .jni .TdApi ;
4+ import it .tdlight .jni .TdApi .LogStream ;
45import it .tdlight .jni .TdApi .LogStreamDefault ;
6+ import it .tdlight .jni .TdApi .LogStreamEmpty ;
57import it .tdlight .jni .TdApi .LogStreamFile ;
8+ import it .tdlight .jni .TdApi .SetLogStream ;
69import it .tdlight .jni .TdApi .SetLogVerbosityLevel ;
710import it .tdlight .tdnative .NativeClient .LogMessageHandler ;
811import java .util .concurrent .atomic .AtomicLong ;
912import java .util .concurrent .atomic .AtomicReference ;
1013
1114/**
12- * Class used for managing internal TDLib logging. Use TdApi.*Log* methods instead.
15+ * Class used for managing internal TDLib logging.
1316 */
1417public final class Log {
1518
@@ -86,6 +89,11 @@ public static void setVerbosityLevel(int verbosityLevel) {
8689 updateLog ();
8790 }
8891
92+ public static void disable () {
93+ setLogMessageHandler (0 , null );
94+ setLogStream (null );
95+ }
96+
8997 /**
9098 *
9199 * Sets the log message handler
@@ -96,6 +104,14 @@ public static void setVerbosityLevel(int verbosityLevel) {
96104 * @param logMessageHandler handler
97105 */
98106 public static void setLogMessageHandler (int maxVerbosityLevel , LogMessageHandler logMessageHandler ) {
99- NativeClientAccess .setLogMessageHandler (maxVerbosityLevel , logMessageHandler );
107+ NativeClientAccess .setLogMessageHandler (logMessageHandler != null ? maxVerbosityLevel : Math .min (maxVerbosityLevel , 1 ),
108+ logMessageHandler != null ? logMessageHandler : new Slf4JLogMessageHandler ());
109+ }
110+
111+ /**
112+ * Sets the log stream
113+ */
114+ public static void setLogStream (LogStream logStream ) {
115+ NativeClientAccess .execute (new SetLogStream (logStream != null ? logStream : new LogStreamEmpty ()));
100116 }
101117}
0 commit comments