loolwsd/IoUtil.cpp | 6 +++--- loolwsd/Util.cpp | 22 ++++++++++++++++++++++ loolwsd/Util.hpp | 4 ++++ 3 files changed, 29 insertions(+), 3 deletions(-)
New commits: commit 422834ebefcf0d69aa0ff997ce61bb927407e763 Author: Tor Lillqvist <t...@collabora.com> Date: Thu Mar 31 11:01:21 2016 +0300 Improve logging Don't embed newlines in "lines" written to the log. When logging stuff read from or written to the fifos, translate newlines to " / " for clarity. (If we would want complete, exact verbose logging, we should be really pedantic and log all non-printable bytes in hex anyway, etc, so displaying newlines as space-separated slashes should be OK. It isn't as if there would be totally arbitary data passed through the fifos anyway.) diff --git a/loolwsd/IoUtil.cpp b/loolwsd/IoUtil.cpp index 02ecb09..f47f454 100644 --- a/loolwsd/IoUtil.cpp +++ b/loolwsd/IoUtil.cpp @@ -210,7 +210,7 @@ ssize_t writeFIFO(int pipe, const char* buffer, ssize_t size) ssize_t count = 0; while(true) { - Log::trace("Writing to pipe. Data: [" + std::string(buffer, size) + "]."); + Log::trace("Writing to pipe. Data: [" + Util::formatLinesForLog(std::string(buffer, size)) + "]."); const auto bytes = write(pipe, buffer + count, size - count); if (bytes < 0) { @@ -282,7 +282,7 @@ int PipeReader::readLine(std::string& line, line += std::string(_data.data(), endOfLine); _data.erase(0, endOfLine - _data.data() + 1); // Including the '\n'. Log::trace() << "Read existing line from pipe: " << _name << ", line: [" - << line << "], data: [" << _data << "]." << Log::end; + << line << "], data: [" << Util::formatLinesForLog(_data) << "]." << Log::end; return 1; } @@ -332,7 +332,7 @@ int PipeReader::readLine(std::string& line, line += tail; _data = std::string(endOfLine + 1, bytes - tail.size() - 1); // Exclude the '\n'. Log::trace() << "Read line from pipe: " << _name << ", line: [" << line - << "], data: [" << _data << "]." << Log::end; + << "], data: [" << Util::formatLinesForLog(_data) << "]." << Log::end; return 1; } else diff --git a/loolwsd/Util.cpp b/loolwsd/Util.cpp index 44cee5c..5d6485d 100644 --- a/loolwsd/Util.cpp +++ b/loolwsd/Util.cpp @@ -511,6 +511,28 @@ namespace Util return nMem; } + + std::string replace(const std::string& s, const std::string& a, const std::string& b) + { + std::string result = s; + std::string::size_type pos; + while ((pos = result.find(a)) != std::string::npos) + { + result = result.replace(pos, a.size(), b); + } + return result; + } + + std::string formatLinesForLog(const std::string& s) + { + std::string r; + std::string::size_type n = s.size(); + if (n > 0 && s.back() == '\n') + r = s.substr(0, n-1); + else + r = s; + return replace(r, "\n", " / "); + } } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/loolwsd/Util.hpp b/loolwsd/Util.hpp index ae3f938..d02fa10 100644 --- a/loolwsd/Util.hpp +++ b/loolwsd/Util.hpp @@ -127,6 +127,10 @@ namespace Util void requestTermination(const Poco::Process::PID& pid); unsigned getMemoryUsage(Poco::Process::PID nPid); + + std::string replace(const std::string& s, const std::string& a, const std::string& b); + + std::string formatLinesForLog(const std::string& s); }; //TODO: Move to own file. _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits