Каким бы хорошим не был код, а логирование всё равно нужно.
Доказывать важность логирования событий при отладке программ не буду, т.к. любой, кто начинает разрабатывать ПО, быстро ощущает эту необходимость на практике. В Unity3D есть собственная система логирования в консоли — Debug.Log(). Но как только от разработки дело переходит к тестированию — консоль уже не помощник. Да и в процессе написания кода иногда требуется история логов.
Лично я пользуюсь простым, но вполне функциональным скриптом. Скрипт LogFile:
private FileInfo _file; private string _name; private string _filePath = "GameLog\\"; public LogFile (string _newName) { _name = _filePath + thisDate() + _newName + ".log"; _file = new FileInfo(_name); if (!File.Exists(_name)) _file.Create(); } public void AddInfo(string _data) { StreamWriter sw = new StreamWriter(File.Open(_name, FileMode.Append, FileAccess.Write)); sw.WriteLine(_data); sw.Close(); } public void AddTime(string _data) { StreamWriter sw = new StreamWriter(File.Open(_name, FileMode.Append, FileAccess.Write)); sw.WriteLine(thisTime() + _data); sw.Close(); } private string thisDate(){ string temp = ""; string _date = DateTime.Today.ToString(); string[] temp2 = new string[3]; temp2 = _date.Split(new Char [] {'/',' '}); temp = temp2[2]+"_"+temp2[0]+"_"+temp2[1]+"-"; return temp; } private string thisTime(){ string temp = ""; string _date = DateTime.Now.ToString(); string[] temp2 = new string[3]; temp2 = _date.Split(new Char [] {' '}); temp = temp2[1] + " "; return temp; }
Для использования нужно в рабочем скрипте объявить переменную для логирования и указать имя для файлов с логами
private LogFile _logs = new LogFile("Test");
Для записи в лог используются две команды AddInfo() и AddTime(). Первая записывает переданный текст, а вторая перед текстом ещё ставит время передачи текста. Файлы создаются с указанием даты, и для одного дня будет использован один и тот же лог-файл.
Скачать пример (783)
Чому у мене тільки записується клік мишки в лог ?
Возможно, что AddInfo/AddTime используется только в событии клика мышки. Вставьте _logs.AddTime(«function1 start») в начале любой используемой вами функции и посмотрите, что будет в логах после запуска программы.