diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-02-16 00:19:15 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-02-16 00:19:15 +0100 |
commit | 3260eed68bbfcbee160dc1aabe8b35ecd3d88c11 (patch) | |
tree | c995585dcbe958d2c8e258b44e12f5713c0997ec /src | |
parent | 87793f331c632ee527915805a0c92a94a534ba37 (diff) |
Updating logger default position for better error messages if an exception is thrown or no explicit location was given in a logger call
Diffstat (limited to 'src')
-rw-r--r-- | src/formats/osml/OsmlParser.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/formats/osml/OsmlParser.cpp b/src/formats/osml/OsmlParser.cpp index 519a2d8..c77da09 100644 --- a/src/formats/osml/OsmlParser.cpp +++ b/src/formats/osml/OsmlParser.cpp @@ -16,6 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <core/common/Logger.hpp> #include <core/parser/stack/GenericParserStates.hpp> #include <core/parser/stack/Stack.hpp> #include <core/parser/ParserContext.hpp> @@ -34,6 +35,11 @@ using namespace parser_stack; class OsmlParserImplementation { private: /** + * Reference at the logger. + */ + Logger &logger; + + /** * OsmlStreamParser instance responsible for converting the input stream * into a series of osml events that are relayed to the Stack class. */ @@ -55,7 +61,9 @@ public: * used. */ OsmlParserImplementation(CharReader &reader, ParserContext &ctx) - : parser(reader, ctx.getLogger()), stack(ctx, GenericParserStates) + : logger(ctx.getLogger()), + parser(reader, logger), + stack(ctx, GenericParserStates) { } @@ -68,6 +76,7 @@ public: bool needsDocument = true; while (true) { OsmlStreamParser::State state = parser.parse(); + logger.setDefaultLocation(parser.getLocation()); switch (state) { case OsmlStreamParser::State::COMMAND: { // Implicitly create a "document" element if the first |