Esempio n. 1
0
	public void Log(string log, CsDLevel level, CsDComponent component)
	{
		
		if((int)_debugLevel[component] >= (int)level)
		{
			StackTrace stackTrace = new StackTrace();
			var method = stackTrace.GetFrame(1).GetMethod();
			var parentClass = method.ReflectedType;
			var parentNameSpace = parentClass.Namespace;

			string formattedLog = Mathf.Round(Time.realtimeSinceStartup * 1000)/1000 + " " + component.ToString() + " " + level.ToString() + " " 
									+ parentNameSpace + "/" + parentClass.Name + "/" + method.Name + ": " + log;

			//if log target is console log, just use debug.log
			//if is file, add the log line to the buffered log, and if it's larger than buffer size, write to file and
			//clear the buffer

			if(_logTarget == CsDLogTarget.Console || _logTarget == CsDLogTarget.Both)
			{
				if(level == CsDLevel.Error)
				{
					UnityEngine.Debug.LogAssertion(formattedLog);
				}
				else
				{
					UnityEngine.Debug.Log(formattedLog);
				}
			}

			if(_logTarget == CsDLogTarget.File || _logTarget == CsDLogTarget.Both)
			{
				_bufferedLog = _bufferedLog + formattedLog + "\r\n";
				
				if(_bufferedLog.Length > _bufferSize)
				{
					LogBufferToFile();
				}
			}

		}
	}
Esempio n. 2
0
    public static Dictionary <CsDComponent, CsDLevel> LoadDebugSetting(out CsDLogTarget logTarget)
    {
        string [] rawFile;

        try
        {
            rawFile = File.ReadAllLines(Application.dataPath + "/GameData/" + "Debugs.txt");
        }
        catch (Exception e)
        {
            logTarget = CsDLogTarget.File;
            UnityEngine.Debug.LogError(e.Message);
            return(null);
        }


        Dictionary <string, object>         data       = CsDebug.ParseLines(rawFile);
        Dictionary <CsDComponent, CsDLevel> debugLevel = new Dictionary <CsDComponent, CsDLevel>();

        //build the dictionary with default values
        CsDComponent [] components = (CsDComponent[])Enum.GetValues(typeof(CsDComponent));
        foreach (CsDComponent component in components)
        {
            debugLevel.Add(component, CsDLevel.Default);
        }

        logTarget = (CsDLogTarget)System.Enum.Parse(typeof(CsDLogTarget), data["LogTarget"].ToString());
        data.Remove("LogTarget");

        foreach (KeyValuePair <string, object> line in data)
        {
            CsDComponent component = (CsDComponent)System.Enum.Parse(typeof(CsDComponent), line.Key);
            CsDLevel     level     = (CsDLevel)System.Enum.Parse(typeof(CsDLevel), line.Value.ToString());


            debugLevel[component] = level;
        }

        return(debugLevel);
    }
Esempio n. 3
0
    public void Log(string log, CsDLevel level, CsDComponent component)
    {
        if ((int)_debugLevel[component] >= (int)level)
        {
            StackTrace stackTrace      = new StackTrace();
            var        method          = stackTrace.GetFrame(1).GetMethod();
            var        parentClass     = method.ReflectedType;
            var        parentNameSpace = parentClass.Namespace;

            string formattedLog = Mathf.Round(Time.realtimeSinceStartup * 1000) / 1000 + " " + component.ToString() + " " + level.ToString() + " "
                                  + parentNameSpace + "/" + parentClass.Name + "/" + method.Name + ": " + log;

            //if log target is console log, just use debug.log
            //if is file, add the log line to the buffered log, and if it's larger than buffer size, write to file and
            //clear the buffer

            if (_logTarget == CsDLogTarget.Console || _logTarget == CsDLogTarget.Both)
            {
                if (level == CsDLevel.Error)
                {
                    UnityEngine.Debug.LogAssertion(formattedLog);
                }
                else
                {
                    UnityEngine.Debug.Log(formattedLog);
                }
            }

            if (_logTarget == CsDLogTarget.File || _logTarget == CsDLogTarget.Both)
            {
                _bufferedLog = _bufferedLog + formattedLog + "\r\n";

                if (_bufferedLog.Length > _bufferSize)
                {
                    LogBufferToFile();
                }
            }
        }
    }