Unity保存日记到本地
  eQub4A7OlyFD 2023年12月02日 14 0


using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class SaveLog : MonoBehaviour
{
    public bool isSavaLog = true;
    public bool isSaveError = true;

    private void Awake()
    {
        Application.logMessageReceived += onHandleLog;

        string fileDif = Application.persistentDataPath + "/Debug/Error/";
        Debug.Log("日记保存路径:" + fileDif);
    }

    private void onHandleLog(string condition, string stackTrace, LogType type)
    {
        string time = DateTime.Now.ToString("yyy-MM-dd HH:mm");

        LogInfo info = new LogInfo();
        info.condition = condition;
        info.stackTrace = stackTrace;
        info.type = type;
        info.tiem = time;
        info.deviceUniqueIdentifier = SystemInfo.deviceUniqueIdentifier;
        info.deviceName = SystemInfo.deviceName;
        info.operatingSystem = SystemInfo.operatingSystem;
        info.systemMemorySize = SystemInfo.systemMemorySize;
        info.deviceModel = SystemInfo.deviceModel;

        string jsonStr = JsonUtility.ToJson(info);


        if (type == LogType.Error || type == LogType.Exception)
        {
            string fileDif = Application.persistentDataPath + "/Debug/Error/";
            if (isSaveError) writeText(fileDif, jsonStr);
        }
        else
        {
            string fileDif = Application.persistentDataPath + "/Debug/Log/";
            if (isSavaLog) writeText(fileDif, jsonStr);
        }
    }

    private void writeText(string fileDif, string message)
    {
        //string fileDif = Application.persistentDataPath + "/Debug/Error/";
        if (!Directory.Exists(fileDif))
        {
            Directory.CreateDirectory(fileDif);
        }
        string textPath = fileDif + DateTime.Now.ToString("yyy-MM-dd") + ".txt";

        if (string.IsNullOrEmpty(textPath) || string.IsNullOrEmpty(message)) return;

        StreamWriter sw = null;
        if (!File.Exists(textPath)) sw = File.CreateText(textPath);
        else sw = File.AppendText(textPath);

        sw.WriteLine(message + '\n');

        sw.Close();
        sw.Dispose();
    }

}


[Serializable]
public class LogInfo
{
    /// <summary>日志ID</summary>
    public string id;
    /// <summary>计数</summary>
    public int count = 1;
    /// <summary>日志条件</summary>
    public string condition;
    /// <summary>堆栈跟踪信息</summary>
    public string stackTrace;
    /// <summary>日志类型</summary>
    public LogType type;
    /// <summary>时间</summary>
    public string time;
    /// <summary>设备唯一标识符</summary>
    public string deviceUniqueIdentifier;
    /// <summary>设备名称</summary>
    public string deviceName;
    /// <summary>操作系统</summary>
    public string operatingSystem;
    /// <summary>系统内存大小</summary>
    public int systemMemorySize;
    /// <summary>设备型号</summary>
    public string deviceModel;
    /// <summary>日记记录时间</summary>
    public string tiem;
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月02日 0

暂无评论

推荐阅读
eQub4A7OlyFD