コード例 #1
0
        private void Log_Message(LogVerbosity verbosity, Log.Category category, string message)
        {
            DateTime date = DateTime.Now;

            lock (logBuffer)
                logBuffer.Add(new LogMessage(date, category, verbosity, message));
        }
コード例 #2
0
 public LogMessage(DateTime date, Log.Category category, LogVerbosity verbosity, string message)
 {
     Date      = date;
     Category  = category;
     Verbosity = verbosity;
     Message   = message;
 }
コード例 #3
0
    void OnEnable( )
    {
        // instantiate a new instance of log proxy for use by viewer
        logProxy = new LogProxy( );
        logProxy.Init();

        // setup initial filter parms and their previous values
        if (levelColours == null)
        {
            category     = (Log.Category) 0xFFFFFF;
            prevCategory = category;

            level      = Log.Level.Trivial;
            prevLevel  = level;
            logLevel   = 0;
            pauseFrame = null;

            keyword = "";

            Log.SetListener(OnLogChange);

            scrollPosition    = 0f;
            activeMessage     = null;
            stylesInitialized = false;
            logSize           = Log.Instance.Count;
            isDirty           = true;

            levelColours = new Dictionary <Log.Level, StateColour>( );
            LoadSettings( );
        }

        // assign application hook to register callbacks for console output and log them if needed
        Application.RegisterLogCallback(HandleLog);
    }
コード例 #4
0
ファイル: Log.cs プロジェクト: lumieru/MobaKeHuDuan
    public int FilterLogs(Log.Category categories, Log.Level level, string keyword, int lockedAt = -1)
    {
        // ensure we never have a null parameter
        if (keyword == null)
        {
            keyword = string.Empty;
        }

        // using the lockedAt parameter, determine if we want all or a partial set of messages
        int safeLockedAt;

        if (lockedAt < 1)
        {
            safeLockedAt = messages.Count;
        }
        else
        {
            safeLockedAt = Mathf.Clamp(lockedAt, lockedAt, messages.Count);
        }

        // fetch the list for a given range
        current = messages.GetRange(0, safeLockedAt).FindAll(( LogMessage message ) => (
                                                                 categories & message.category) > 0 && message.level >= level && message.message.ToLower( ).Contains(keyword.ToLower( ))
                                                             );

        current.Reverse( );
        return(current.Count);
    }
コード例 #5
0
ファイル: LogMessage.cs プロジェクト: 79Game/GameDemo
 public LogMessage(float time, int frame, Log.Category category, Log.Level level, string message, string stack)
 {
     this.time       = time;
     this.frame      = frame;
     this.category   = category;
     this.level      = level;
     this.message    = (message == null) ? "" : message;
     this.stack      = (stack == null) ? "" : stack;
     this.occurances = 1;
 }
コード例 #6
0
    private void RenderHeader( )
    {
        // build the title bar with all filtering options
        GUILayout.BeginHorizontal(titleBarStyle, GUILayout.Height(32f));

        // render out the available category buttons and prefix with all/none
        GUILayout.Label("Category:", GUILayout.Width(68f));
        category = (Log.Category)EditorGUILayout.EnumMaskField(category);
        GUILayout.Space(8f);

        // display a level slider we can adjust the log level with
        GUILayout.Label("Log Level:", GUILayout.Width(68f));
        logLevel = GUILayout.HorizontalSlider(logLevel, 0f, 4f, GUILayout.Width(128f));
        logLevel = Mathf.Clamp(Mathf.RoundToInt(logLevel), 0, 4);
        level    = (Log.Level)Mathf.RoundToInt(logLevel);

        string label = level.ToString( );

        GUILayout.Label("(" + label + ")");
        GUILayout.FlexibleSpace( );

        // render out the text search filter area
        GUILayout.Label("Keyword:");
        keyword = GUILayout.TextField(keyword == null ? "" : keyword, GUILayout.Width(128f));
        GUILayout.Space(4f);

        if (GUILayout.Button("Actions", EditorStyles.toolbarDropDown))
        {
            GenericMenu toolsMenu = new GenericMenu( );
            toolsMenu.AddItem(new GUIContent("Copy Active Log"), false, CopyActiveLog);

            string pauseMenuText = pauseFrame == null ? "Pause Log Viewer" : "Resume Log Viewer";
            toolsMenu.AddItem(new GUIContent(pauseMenuText), false, PauseLog);
            toolsMenu.AddSeparator("");

            toolsMenu.AddItem(new GUIContent("Redirect To Console"), Log.Instance.IsConsoleOn( ), RedirectToConsole);
            toolsMenu.AddItem(new GUIContent("Intercept Console"), Log.Instance.IsInterceptOn( ), InterceptConsole);
            toolsMenu.AddSeparator("");

            string toggleWatches = (logWatch == null) ? "Show Watches" : "Hide Watches";
            toolsMenu.AddItem(new GUIContent(toggleWatches), false, ToggleWatchWindow);
            toolsMenu.AddItem(new GUIContent("Export to 'log.csv'"), false, ExportToCSV);
            toolsMenu.AddSeparator("");

            toolsMenu.AddItem(new GUIContent("Clear Log"), false, ClearLog);
            toolsMenu.DropDown(new Rect(position.width - 200f, 16f, 0, 16));
        }

        GUILayout.Space(2f);
        GUILayout.EndHorizontal( );
    }
コード例 #7
0
ファイル: Log.cs プロジェクト: bp-tags/NIKit
 public int FilterLogs(Log.Category categories, Log.Level level, string keyword)
 {
     return(FilterLogs(categories, level, keyword, -1));
 }