Каким бы хорошим не был код, а логирование всё равно нужно.
Доказывать важность логирования событий при отладке программ не буду, т.к. любой, кто начинает разрабатывать ПО, быстро ощущает эту необходимость на практике. В 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(). Первая записывает переданный текст, а вторая перед текстом ещё ставит время передачи текста. Файлы создаются с указанием даты, и для одного дня будет использован один и тот же лог-файл.
Скачать пример (2703 Загрузки )
