1//============================================================================
2//
3// SSSS tt lll lll
4// SS SS tt ll ll
5// SS tttttt eeee ll ll aaaa
6// SSSS tt ee ee ll ll aa
7// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
8// SS SS tt ee ll ll aa aa
9// SSSS ttt eeeee llll llll aaaaa
10//
11// Copyright (c) 1995-2019 by Bradford W. Mott, Stephen Anthony
12// and the Stella Team
13//
14// See the file "License.txt" for information on usage and redistribution of
15// this file, and for a DISCLAIMER OF ALL WARRANTIES.
16//============================================================================
17
18#include "Logger.hxx"
19
20// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
21Logger& Logger::instance()
22{
23 static Logger loggerInstance;
24
25 return loggerInstance;
26}
27
28// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
29void Logger::log(const string& message, Level level)
30{
31 instance().logMessage(message, level);
32}
33
34// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
35void Logger::error(const string& message)
36{
37 instance().logMessage(message, Level::ERR);
38}
39
40// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
41void Logger::info(const string& message)
42{
43 instance().logMessage(message, Level::INFO);
44}
45// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
46void Logger::debug(const string& message)
47{
48 instance().logMessage(message, Level::DEBUG);
49}
50
51// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
52void Logger::logMessage(const string& message, Level level) const
53{
54 if (myLogCallback)
55 myLogCallback(message, level);
56
57 else
58 cout << message << endl << std::flush;
59}
60
61// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
62void Logger::setLogCallback(Logger::logCallback callback)
63{
64 myLogCallback = callback;
65}
66
67// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
68void Logger::clearLogCallback()
69{
70 myLogCallback = logCallback();
71}
72