| 250 | } |
| 251 | |
| 252 | bool ReadLogFileMessage(const std::string& data, Line& line) |
| 253 | { |
| 254 | try |
| 255 | { |
| 256 | TabSplitter split(data); |
| 257 | line.time = std::stod(split.GetNext()); |
| 258 | line.systemTime = MakeFileTime(split.GetNext()); |
| 259 | line.pid = std::stoul(split.GetNext()); |
| 260 | line.processName = split.GetNext(); |
| 261 | line.message = split.GetTail(); |
| 262 | } |
| 263 | catch (std::exception& ex) |
| 264 | { |
| 265 | line.message = stringbuilder() << "Exception: '" << ex.what() << "' occurred processing line: " << data; |
| 266 | } |
| 267 | return true; |
| 268 | } |
| 269 | |
| 270 | std::ostream& operator<<(std::ostream& os, const FILETIME& ft) |
| 271 | { |