欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

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

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C#教程|點(diǎn)擊: 次

在使用Unity中的Debug.Log()進(jìn)行日志輸出時(shí)很不方便,在打包出來的可執(zhí)行文件中沒有辦法看到輸出,所有就想自己實(shí)現(xiàn)一個(gè)簡(jiǎn)易的日志輸出功能,可以輸出到日志文件,因?yàn)槟芰?shí)在是不夠,所以有錯(cuò)誤和不合理的地方,還請(qǐng)各位老師指點(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.測(cè)試 

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();
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:利用C#守護(hù)Python進(jìn)程的方法

欄    目:C#教程

下一篇:C# 獲取某個(gè)時(shí)間的0點(diǎn)0分和23點(diǎn)59分59秒

本文標(biāo)題:Unity實(shí)現(xiàn)簡(jiǎn)易日志輸出功能

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/4650.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有