You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.1 KiB
120 lines
4.1 KiB
//
|
|
// UniWebViewLogger.cs
|
|
// Created by Wang Wei(@onevcat) on 2017-04-11.
|
|
//
|
|
// This file is a part of UniWebView Project (https://uniwebview.com)
|
|
// By purchasing the asset, you are allowed to use this code in as many as projects
|
|
// you want, only if you publish the final products under the name of the same account
|
|
// used for the purchase.
|
|
//
|
|
// This asset and all corresponding files (such as source code) are provided on an
|
|
// “as is” basis, without warranty of any kind, express of implied, including but not
|
|
// limited to the warranties of merchantability, fitness for a particular purpose, and
|
|
// noninfringement. In no event shall the authors or copyright holders be liable for any
|
|
// claim, damages or other liability, whether in action of contract, tort or otherwise,
|
|
// arising from, out of or in connection with the software or the use of other dealing in the software.
|
|
//
|
|
|
|
/// <summary>
|
|
/// A leveled logger which could log UniWebView related messages in
|
|
/// both development environment and final product.
|
|
/// </summary>
|
|
public class UniWebViewLogger {
|
|
/// <summary>
|
|
/// Logger level.
|
|
/// </summary>
|
|
public enum Level {
|
|
/// <summary>
|
|
/// Lowest level. When set to `Verbose`, the logger will log out all messages.
|
|
/// </summary>
|
|
Verbose = 0,
|
|
|
|
/// <summary>
|
|
/// Debug level. When set to `Debug`, the logger will log out most of messages up to this level.
|
|
/// </summary>
|
|
Debug = 10,
|
|
|
|
/// <summary>
|
|
/// Info level. When set to `Info`, the logger will log out up to info messages.
|
|
/// </summary>
|
|
Info = 20,
|
|
|
|
/// <summary>
|
|
/// Critical level. When set to `Critical`, the logger will only log out errors or exceptions.
|
|
/// </summary>
|
|
Critical = 80,
|
|
|
|
/// <summary>
|
|
/// Off level. When set to `Off`, the logger will log out nothing.
|
|
/// </summary>
|
|
Off = 99
|
|
}
|
|
|
|
private static UniWebViewLogger instance;
|
|
private Level level;
|
|
|
|
/// <summary>
|
|
/// Current level of this logger. All messages above current level will be logged out.
|
|
/// Default is `Critical`, which means the logger only prints errors and exceptions.
|
|
/// </summary>
|
|
public Level LogLevel {
|
|
get { return level; }
|
|
set {
|
|
Log(Level.Off, "Setting UniWebView logger level to: " + value);
|
|
level = value;
|
|
UniWebViewInterface.SetLogLevel((int)value);
|
|
}
|
|
}
|
|
|
|
private UniWebViewLogger(Level level) {
|
|
this.level = level;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Instance of the UniWebView logger across the process. Normally you should use this for logging purpose
|
|
/// in UniWebView, instead of creating a new logger yourself.
|
|
/// </summary>
|
|
public static UniWebViewLogger Instance {
|
|
get {
|
|
if (instance == null) {
|
|
instance = new UniWebViewLogger(Level.Critical);
|
|
}
|
|
return instance;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Log a verbose message.
|
|
/// </summary>
|
|
/// <param name="message">The message to log.</param>
|
|
public void Verbose(string message) { Log(Level.Verbose, message); }
|
|
|
|
/// <summary>
|
|
/// Log a debug message.
|
|
/// </summary>
|
|
/// <param name="message">The message to log.</param>
|
|
public void Debug(string message) { Log(Level.Debug, message); }
|
|
|
|
/// <summary>
|
|
/// Log an info message.
|
|
/// </summary>
|
|
/// <param name="message">The message to log.</param>
|
|
public void Info(string message) { Log(Level.Info, message); }
|
|
|
|
/// <summary>
|
|
/// Log a critical message.
|
|
/// </summary>
|
|
/// <param name="message">The message to log.</param>
|
|
public void Critical(string message) { Log(Level.Critical, message); }
|
|
|
|
private void Log(Level level, string message) {
|
|
if (level >= this.LogLevel) {
|
|
var logMessage = "<UniWebView> " + message;
|
|
if (level == Level.Critical) {
|
|
UnityEngine.Debug.LogError(logMessage);
|
|
} else {
|
|
UnityEngine.Debug.Log(logMessage);
|
|
}
|
|
}
|
|
}
|
|
} |