SimpleJsonLogger.cpp
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T),
5 * Karlsruhe Institute of Technology (KIT), all rights reserved.
6 *
7 * ArmarX is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 * ArmarX is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *
19 * @author Simon Ottenhaus (simon dot ottenhaus at kit dot edu)
20 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
21 * GNU General Public License
22 */
23
24#include "SimpleJsonLogger.h"
25
26namespace armarx
27{
28 SimpleJsonLogger::SimpleJsonLogger(const std::string& filename, bool append) : autoflush(true)
29 {
30 file.open(filename.c_str(),
31 append ? std::ios_base::app : std::ios_base::out | std::ios_base::trunc);
32 }
33
34 void
36 {
37 file << entry->toJsonString() << "\n";
38 if (autoflush)
39 {
40 file.flush();
41 }
42 }
43
44 void
46 {
47 log(entry.obj);
48 }
49
50 void
52 {
53 log(entry->obj);
54 }
55
56 void
58 {
59 file.flush();
60 file.close();
61 }
62
64 {
65 if (file.is_open())
66 {
67 file.close();
68 }
69 }
70} // namespace armarx
void log(JsonDataPtr entry)
void log(const SimpleJsonLoggerEntry &entry)
SimpleJsonLogger(const std::string &filename, bool append)
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::shared_ptr< JsonData > JsonDataPtr
Definition JsonData.h:31
std::shared_ptr< SimpleJsonLoggerEntry > SimpleJsonLoggerEntryPtr