diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-11-06 23:15:49 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-11-06 23:15:49 +0000 |
| commit | 8749d5a9ea25ba94ab50e6755d1b7033a8bb6004 (patch) | |
| tree | 17b4f63e065c6678cf112fd862c785d3e225b595 /src/lib/log.cc | |
| parent | 009e4abb14cfcaecc0de8fab179adc7bd5feffd4 (diff) | |
Fix log head/tail functions.
Diffstat (limited to 'src/lib/log.cc')
| -rw-r--r-- | src/lib/log.cc | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/lib/log.cc b/src/lib/log.cc index 156f8cf8b..934664915 100644 --- a/src/lib/log.cc +++ b/src/lib/log.cc @@ -124,12 +124,12 @@ FileLog::do_log (string m) } string -FileLog::head_and_tail () const +FileLog::head_and_tail (int amount) const { boost::mutex::scoped_lock lm (_mutex); - uintmax_t head_amount = 1024; - uintmax_t tail_amount = 1024; + uintmax_t head_amount = amount; + uintmax_t tail_amount = amount; uintmax_t size = boost::filesystem::file_size (_file); if (size < (head_amount + tail_amount)) { @@ -148,16 +148,19 @@ FileLog::head_and_tail () const int N = fread (buffer, 1, head_amount, f); buffer[N] = '\0'; - out += buffer; + out += string (buffer); - fseek (f, tail_amount, SEEK_END); - - N = fread (buffer, 1, tail_amount, f); - buffer[N] = '\0'; - out += buffer; + if (tail_amount > 0) { + out += "\n.\n.\n.\n"; - delete[] buffer; + fseek (f, - tail_amount - 1, SEEK_END); + + N = fread (buffer, 1, tail_amount, f); + buffer[N] = '\0'; + out += string (buffer) + "\n"; + } + delete[] buffer; fclose (f); return out; |
