| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- using System;
- using System.IO;
- using System.Text;
- namespace Base
- {
- [ObjectEvent]
- public class LogComponentEvent : ObjectEvent<LogComponent>, IAwake
- {
- public void Awake()
- {
- this.GetValue().Awake();
- }
- }
- public class LogComponent : Component
- {
- private StreamWriter info;
- private StreamWriter error;
- // 每多少秒发一次
- public long SendToServerFrequency = 20 * 1000;
- public long SendToServerTime;
- #if UNITY_EDITOR
- private static bool IsNeedFlush = true;
- #else
- private static bool IsNeedFlush = false;
- #endif
- public void Awake()
- {
- if (!Directory.Exists("../Log"))
- {
- Directory.CreateDirectory("../Log");
- }
- string s = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss");
- info = new StreamWriter($"../Log/log-{s}.info.log", false, Encoding.Unicode, 1024);
- error = new StreamWriter($"../Log/log-{s}.error.log", false, Encoding.Unicode, 1024);
- }
- public void Warning(string msg)
- {
- DateTime dateTime = DateTime.Now;
- string s = $"{dateTime.ToString("yyyy-MM-dd HH:mm:ss")} {msg}";
- info.WriteLine(s);
- if (IsNeedFlush)
- {
- info.Flush();
- }
- #if UNITY_EDITOR
- UnityEngine.Debug.LogWarning(s);
- #endif
- }
- public void Info(string msg)
- {
- DateTime dateTime = DateTime.Now;
- string s = $"{dateTime.ToString("yyyy-MM-dd HH:mm:ss")} {msg}";
- info.WriteLine(s);
- if (IsNeedFlush)
- {
- info.Flush();
- }
- #if UNITY_EDITOR
- UnityEngine.Debug.Log(s);
- #endif
- }
- public void Error(string msg)
- {
- DateTime dateTime = DateTime.Now;
- string s = $"{dateTime.ToString("yyyy-MM-dd HH:mm:ss")} {TimeHelper.ClientNow()} {msg}";
- error.WriteLine(s);
- if (IsNeedFlush)
- {
- error.Flush();
- }
- #if UNITY_EDITOR
- UnityEngine.Debug.LogError(s);
- #endif
- long timeNow = TimeHelper.ClientNow();
- if (timeNow - SendToServerTime > SendToServerFrequency)
- {
- SendToServerTime = timeNow;
- Share.Scene.GetComponent<EventComponent>().Run(EventIdType.LogError, s);
- }
- }
- public void Debug(string msg)
- {
- #if UNITY_EDITOR
- DateTime dateTime = DateTime.Now;
- string s = $"{dateTime.ToString("yyyy-MM-dd HH:mm:ss")} {TimeHelper.ClientNow()} {msg}";
- UnityEngine.Debug.Log(s);
- #endif
- }
- public void Flush()
- {
- info.Flush();
- error.Flush();
- }
- public override void Dispose()
- {
- if (this.Id == 0)
- {
- return;
- }
- base.Dispose();
- this.info.Close();
- this.error.Close();
- }
- }
- }
|