//------------------------------------------------------------
// Game Framework
// Copyright © 2013-2021 Jiang Yin. All rights reserved.
// Homepage: https://gameframework.cn/
// Feedback: mailto:ellan@gameframework.cn
//------------------------------------------------------------
using GameFramework;
using System;
using System.IO;
using UnityEngine;
namespace UnityGameFramework.Runtime
{
///
/// 默认游戏框架日志辅助器。
///
public class DefaultLogHelper : GameFrameworkLog.ILogHelper
{
private string logFilePath;
public DefaultLogHelper() {
string currentDate = DateTime.Now.ToString("yyyyMMdd");
logFilePath = Application.dataPath + "/Logs/" + currentDate + ".txt";
}
///
/// 记录日志。
///
/// 日志等级。
/// 日志内容。
public void Log(GameFrameworkLogLevel level, object message)
{
switch (level)
{
case GameFrameworkLogLevel.Debug:
Debug.Log(Utility.Text.Format("{0}", message.ToString()));
break;
case GameFrameworkLogLevel.Info:
Debug.Log(message.ToString());
break;
case GameFrameworkLogLevel.Warning:
Debug.LogWarning(message.ToString());
break;
case GameFrameworkLogLevel.Error:
Debug.LogError(message.ToString());
break;
default:
throw new GameFrameworkException(message.ToString());
}
// 写入日志文件
WriteToFile(message.ToString());
}
private void WriteToFile(string logMessage)
{
try
{
// 如果日志文件不存在,则创建文件
if (!File.Exists(logFilePath))
{
Directory.CreateDirectory(Path.GetDirectoryName(logFilePath));
File.Create(logFilePath).Close();
}
// 追加日志信息到文件
using (StreamWriter writer = File.AppendText(logFilePath))
{
writer.WriteLine(logMessage);
}
}
catch (Exception ex)
{
Debug.LogError($"Failed to write log to file: {ex.Message}");
}
}
}
}