最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity實(shí)現(xiàn)簡易日志輸出功能

 更新時間:2019年09月17日 09:21:39   作者:Blinkedu  
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)簡易日志輸出功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在使用Unity中的Debug.Log()進(jìn)行日志輸出時很不方便,在打包出來的可執(zhí)行文件中沒有辦法看到輸出,所有就想自己實(shí)現(xiàn)一個簡易的日志輸出功能,可以輸出到日志文件,因?yàn)槟芰?shí)在是不夠,所以有錯誤和不合理的地方,還請各位老師指點(diǎn)一下,謝謝啦

1.日志記錄器接口

public interface ILogger
{
 void Log(string condition, string stackTrace, UnityEngine.LogType type);
}

2.日志文件記錄器

using System;
using UnityEngine;
using System.IO;
 
public class FileLogger : ILogger
{
 private readonly string path;
 
 /// <summary>
 /// 構(gòu)造方法
 /// </summary>
 /// <param name="isClear">是否清空原有的日志</param>
 public FileLogger(bool isClear = false)
 {
  switch (Application.platform)
  {
   case RuntimePlatform.Android:
    path = Path.Combine( Application.persistentDataPath,"log.txt");
    break;
   case RuntimePlatform.WindowsPlayer:
    path = Path.Combine(Application.dataPath, "log.txt");
    break;
   case RuntimePlatform.WindowsEditor:
    path = Path.Combine(Application.dataPath, "log.txt");
    break;
   case RuntimePlatform.IPhonePlayer:
    path = Path.Combine(Application.persistentDataPath, "log.txt");
    break;
   case RuntimePlatform.OSXEditor:
    break;
   default:
    break;
  }
 
  if (isClear)
  {
   if (File.Exists(path))
   {
    File.Delete(path);
   }
  }
 }
 
 public void Log(string condition, string stackTrace, LogType type)
 {
  using (StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.UTF8))
  {
   string msg = string.Format("[{0}] {1}: {2}\n{3}", GetNowTime(), type, condition, stackTrace);
   sw.WriteLine(msg);
  }
 }
 
 
 #region Tool Method
 private string GetNowTime()
 {
  return DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
 }
 #endregion
}

3.日志系統(tǒng)管理類 

using System;
using UnityEngine;
 
public class LogSys
{
 private static ILogger logger;
 public static ILogger Logger
 {
  get { return logger; }
 }
 
 public bool IsOpen
 {
  get { return Debug.unityLogger.logEnabled; }
 }
 
 private LogSys() { }
 
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="_logger">日志輸出器</param>
 /// <param name="isOpen">是否開啟日志輸出</param>
 public static void Init(ILogger _logger, bool isOpen = true)
 {
  Init(isOpen);
  logger = _logger;
  Enable();
 }
 
 public static void Init(bool isOpen = true)
 {
  Debug.unityLogger.logEnabled = isOpen;
 }
 
 /// <summary>
 /// 過濾器
 /// </summary>
 /// <param name="logType">需要顯示的日志類型</param>
 public static void Filter(LogType logType = LogType.Log)
 {
  Debug.unityLogger.filterLogType = logType;
 }
 
 public static void Enable()
 {
  if (logger != null)
  {
   Application.logMessageReceived += logger.Log;
  }
 }
 
 public static void Disable()
 {
  if (logger != null)
  {
   Application.logMessageReceived -= logger.Log;
  }
 
 }
}

4.測試 

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.UI;
 
public class Test : MonoBehaviour
{
 public Text logText;
 
 void Awake()
 {
  LogSys.Init(new FileLogger());
 }
 
 void Update()
 {
  if (Input.GetKeyDown(KeyCode.Q))
  {
   Debug.Log("My name is Blinkedu.");
  }
 
  if (Input.GetKeyDown(KeyCode.W))
  {
   Debug.LogWarning("My name is Blinkedu.");
  }
 
  if (Input.GetKeyDown(KeyCode.E))
  {
   Debug.LogError("My name is Blinkedu.");
  }
 }
 
 private void OnDestroy()
 {
  LogSys.Disable();
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • DevExpress之ChartControl實(shí)現(xiàn)時間軸實(shí)例

    DevExpress之ChartControl實(shí)現(xiàn)時間軸實(shí)例

    這篇文章主要介紹了DevExpress中ChartControl實(shí)現(xiàn)時間軸的方法,涉及相關(guān)C#繪圖程序用法,具有一定的實(shí)用價值,需要的朋友可以參考下
    2014-10-10
  • C# 實(shí)現(xiàn)WebSocket服務(wù)端教程

    C# 實(shí)現(xiàn)WebSocket服務(wù)端教程

    這篇文章主要介紹了C# 實(shí)現(xiàn)WebSocket服務(wù)端教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • C#下listview如何插入圖片

    C#下listview如何插入圖片

    這篇文章主要為大家詳細(xì)介紹了C#下listview如何插入圖片,如何在listview中插入圖片的每一個步驟為大家分享,感興趣的朋友可以參考一下
    2016-05-05
  • C#根據(jù)身份證號碼判斷出生日期和性別

    C#根據(jù)身份證號碼判斷出生日期和性別

    這篇文章主要為大家詳細(xì)介紹了C#根據(jù)身份證號碼判斷出生日期和性別的方法,感興趣的小伙伴們可以參考一下
    2016-08-08
  • mvc C# JavaScript LigerUI oracle實(shí)現(xiàn)用戶的注冊、登陸驗(yàn)證、登陸

    mvc C# JavaScript LigerUI oracle實(shí)現(xiàn)用戶的注冊、登陸驗(yàn)證、登陸

    這篇文章主要介紹了mvc C# JavaScript LigerUI oracle實(shí)現(xiàn)用戶的注冊、登陸驗(yàn)證、登陸的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • C#二叉搜索樹算法實(shí)現(xiàn)步驟和實(shí)例代碼

    C#二叉搜索樹算法實(shí)現(xiàn)步驟和實(shí)例代碼

    二叉搜索樹(Binary?Search?Tree,簡稱BST)是一種節(jié)點(diǎn)有序排列的二叉樹數(shù)據(jù)結(jié)構(gòu),這篇文章主要介紹了C#二叉搜索樹算法實(shí)現(xiàn)步驟和實(shí)例代碼,需要的朋友可以參考下
    2024-08-08
  • C# 可空類型的具體使用

    C# 可空類型的具體使用

    這篇文章主要介紹了C# 可空類型的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • C#多線程編程中的鎖系統(tǒng)基本用法

    C#多線程編程中的鎖系統(tǒng)基本用法

    這篇文章主要介紹了C#多線程編程中的鎖系統(tǒng)基本用法,本文講解了lock、Monitor、mutex、Semaphore等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • C#多線程處理多個隊列數(shù)據(jù)的方法

    C#多線程處理多個隊列數(shù)據(jù)的方法

    這篇文章主要介紹了C#多線程處理多個隊列數(shù)據(jù)的方法,涉及C#線程與隊列的相關(guān)操作技巧,需要的朋友可以參考下
    2015-07-07
  • C#中IDispose接口的實(shí)現(xiàn)及為何這么實(shí)現(xiàn)詳解

    C#中IDispose接口的實(shí)現(xiàn)及為何這么實(shí)現(xiàn)詳解

    這篇文章主要給大家介紹了關(guān)于C#中IDispose接口的實(shí)現(xiàn)及為何這么實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05

最新評論

象山县| 二连浩特市| 凭祥市| 竹溪县| 西平县| 杭州市| 凉山| 托克托县| 宜兰市| 高尔夫| 恩施市| 敖汉旗| 兴业县| 石景山区| 仁怀市| 武义县| 腾冲县| 会昌县| 玛多县| 炎陵县| 宁波市| 县级市| 麦盖提县| 师宗县| 抚宁县| 陇南市| 石城县| 谷城县| 三门峡市| 古浪县| 宿松县| 定远县| 泗水县| 甘泉县| 临夏市| 若羌县| 神木县| 台东县| 砚山县| 双流县| 博爱县|