关于Unity3D中的日志

来源:互联网 发布:淘宝网时尚女牛仔裤 编辑:程序博客网 时间:2024/04/30 08:23

Unity3D中的调试我一直很有话要说,调试真是个反人道的事情,所以简单介绍一下。。。

什么是日志

日志输出的函数大致可分为两类:Debug 和 print

Debug.Log()
Debug.LogWorning()
Debug.LogError()

MonoBehaviour.print(object);

Debug.LogXXX() 可以用于任何地方
print() 只能用于 MonoBehaviour 的子类之中
究其本源,这2种方法在本质都是 Debug.Log()

日志文件保存在什么位置

日志文件名

在我本机上,是这个文件【C:\Users\USER_NAME\AppData\Local\Unity\Editor\Editor.log】

Editor Logs:

Windows XP:

C:\Documents and Settings\YOUR_USERNAME\Local Settings\Application Data\Unity\Editor.

Windows Vista, 7:

C:\Users\YOUR_USERNAME\AppData\Local\Unity\Editor

OS X:

~/Library/Logs/Unity/

WebPlayer Logs:

Windows XP:

C:\Documents and Settings\YOUR_USERNAME\Local Settings\temp\UnityWebPlayer\log

Windows Vista, 7:

C:\Users\YOUR_USERNAME\Local Settings\temp\UnityWebPlayer\log

OS X:

~/Library/Logs/Unity/

对日志函数的封装

考虑到后续对日志部分的统一处理,一般会对日志函数封装一层,思想有些借鉴 Log4J 。

示例代码块

例如:

using Game.Const;using UnityEngine;namespace Game.Utility{    /// <summary>    /// 日志工具,它是对LOG行为的一层简单封装。游戏代码中所有牵涉到LOG的都从这里进行。注意日志有级别的区分。    /// </summary>    public class LogUtility    {        // ---------------------------------- 单例 --------------------------------------        /// <summary>        /// singleton instance        /// </summary>        public static readonly LogUtility instance = new LogUtility();        /// <summary>        /// Prevents a default instance of the <see cref="LogUtility"/> class from being created.        /// </summary>        private LogUtility()        {        }        // ---------------------------------- 单例结束 ----------------------------------        /// <summary>        /// 记录日志信息        /// </summary>        /// <param name="text">日志内容</param>        /// <param name="level">日志级别</param>        public void Log(string text, EnumLogLevel level)        {            if (level == EnumLogLevel.ERROR)            {                Debug.LogError(text);            }            else {                NGUIDebug.Log(text);            }        }        /// <summary>        /// 记录 debug 级别的日志         /// </summary>        public void LogDebug(string text)        {            Log(text, EnumLogLevel.DEBUG);        }        /// <summary>        /// 记录 info 级别的日志         /// </summary>        public void LogInfo(string text)        {            Log(text, EnumLogLevel.INFO);        }        /// <summary>        /// 记录 info 级别的日志         /// </summary>        public void LogError(string text)        {            Log(text, EnumLogLevel.ERROR);        }    }}
0 0
原创粉丝点击