1
2//
3// This source file is part of appleseed.
4// Visit http://appleseedhq.net/ for additional information and resources.
5//
6// This software is released under the MIT license.
7//
8// Copyright (c) 2010-2013 Francois Beaune, Jupiter Jazz Limited
9// Copyright (c) 2014-2017 Francois Beaune, The appleseedhq Organization
10//
11// Permission is hereby granted, free of charge, to any person obtaining a copy
12// of this software and associated documentation files (the "Software"), to deal
13// in the Software without restriction, including without limitation the rights
14// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15// copies of the Software, and to permit persons to whom the Software is
16// furnished to do so, subject to the following conditions:
17//
18// The above copyright notice and this permission notice shall be included in
19// all copies or substantial portions of the Software.
20//
21// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
27// THE SOFTWARE.
28//
29
30#ifndef APPLESEED_FOUNDATION_UTILITY_LOG_LOGMESSAGE_H
31#define APPLESEED_FOUNDATION_UTILITY_LOG_LOGMESSAGE_H
32
33// appleseed.main headers.
34#include "main/dllsymbol.h"
35
36namespace foundation
37{
38
39//
40// Log message.
41//
42
43class APPLESEED_DLLSYMBOL LogMessage
44{
45 public:
46 // Message categories. The order matters, preserve it.
47 enum Category
48 {
49 Debug = 0, // debug message
50 Info = 1, // general information, statistics, progress message, etc.
51 Warning = 2, // warning message; execution can continue
52 Error = 3, // severe error message; the program will attempt to continue
53 Fatal = 4, // fatal error message; the program will terminate afterward
54 NumMessageCategories // number of message categories (keep at the end)
55 };
56
57 //
58 // Return the category matching a given name:
59 //
60 // Name Value
61 // ------------------
62 // "debug" Debug
63 // "info" Info
64 // "warning" Warning
65 // "error" Error
66 // "fatal" Fatal
67 // Otherwise NumMessageCategories
68 //
69
70 static Category get_category_value(const char* name);
71
72 // Return a string identifying a given message category.
73 static const char* get_category_name(const Category c);
74
75 // Return a category name padded with spaces to the right.
76 static const char* get_padded_category_name(const Category c);
77};
78
79} // namespace foundation
80
81#endif // !APPLESEED_FOUNDATION_UTILITY_LOG_LOGMESSAGE_H
82