Last change
on this file since 1109 was 1096, checked in by s10k, 7 years ago |
Added zlib, quazip, basicxmlsyntaxhighlighter, conditionalsemaphore and linenumberdisplay libraries. zlib and quazip are pre-compiled, but you can compile them yourself, just delete the dll files (or equivalent binary files to your OS)
|
File size:
1.9 KB
|
Rev | Line | |
---|
[1096] | 1 | #pragma once
|
---|
| 2 | #include <plog/Record.h>
|
---|
| 3 | #include <plog/Util.h>
|
---|
| 4 | #include <iomanip>
|
---|
| 5 |
|
---|
| 6 | namespace plog
|
---|
| 7 | {
|
---|
| 8 | class CsvFormatter
|
---|
| 9 | {
|
---|
| 10 | public:
|
---|
| 11 | static util::nstring header()
|
---|
| 12 | {
|
---|
| 13 | return PLOG_NSTR("Date;Time;Severity;TID;This;Function;Message\n");
|
---|
| 14 | }
|
---|
| 15 |
|
---|
| 16 | static util::nstring format(const Record& record)
|
---|
| 17 | {
|
---|
| 18 | tm t;
|
---|
| 19 | util::localtime_s(&t, &record.getTime().time);
|
---|
| 20 |
|
---|
| 21 | util::nstringstream ss;
|
---|
| 22 | ss << t.tm_year + 1900 << PLOG_NSTR("/") << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_mon + 1 << PLOG_NSTR("/") << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_mday << PLOG_NSTR(";");
|
---|
| 23 | ss << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_hour << PLOG_NSTR(":") << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_min << PLOG_NSTR(":") << std::setfill(PLOG_NSTR('0')) << std::setw(2) << t.tm_sec << PLOG_NSTR(".") << std::setfill(PLOG_NSTR('0')) << std::setw(3) << record.getTime().millitm << PLOG_NSTR(";");
|
---|
| 24 | ss << severityToString(record.getSeverity()) << PLOG_NSTR(";");
|
---|
| 25 | ss << record.getTid() << PLOG_NSTR(";");
|
---|
| 26 | ss << record.getObject() << PLOG_NSTR(";");
|
---|
| 27 | ss << record.getFunc() << PLOG_NSTR("@") << record.getLine() << PLOG_NSTR(";");
|
---|
| 28 |
|
---|
| 29 | util::nstring message = record.getMessage();
|
---|
| 30 |
|
---|
| 31 | if (message.size() > kMaxMessageSize)
|
---|
| 32 | {
|
---|
| 33 | message.resize(kMaxMessageSize);
|
---|
| 34 | message.append(PLOG_NSTR("..."));
|
---|
| 35 | }
|
---|
| 36 |
|
---|
| 37 | util::nstringstream split(message);
|
---|
| 38 | util::nstring token;
|
---|
| 39 |
|
---|
| 40 | while (!split.eof())
|
---|
| 41 | {
|
---|
| 42 | std::getline(split, token, PLOG_NSTR('"'));
|
---|
| 43 | ss << PLOG_NSTR("\"") << token << PLOG_NSTR("\"");
|
---|
| 44 | }
|
---|
| 45 |
|
---|
| 46 | ss << PLOG_NSTR("\n");
|
---|
| 47 |
|
---|
| 48 | return ss.str();
|
---|
| 49 | }
|
---|
| 50 |
|
---|
| 51 | static const size_t kMaxMessageSize = 32000;
|
---|
| 52 | };
|
---|
| 53 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.