MagickCore  6.9.12-38
Convert, Edit, Or Compose Bitmap Images
log.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
3  dedicated to making software imaging solutions freely available.
4 
5  You may not use this file except in compliance with the License. You may
6  obtain a copy of the License at
7 
8  https://imagemagick.org/script/license.php
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16  MagickCore log methods.
17 */
18 #ifndef MAGICKCORE_LOG_H
19 #define MAGICKCORE_LOG_H
20 
21 #include <stdarg.h>
22 #include "magick/exception.h"
23 
24 #if defined(__cplusplus) || defined(c_plusplus)
25 extern "C" {
26 #endif
27 
28 #if !defined(GetMagickModule)
29 # define GetMagickModule() __FILE__,__func__,(unsigned long) __LINE__
30 #endif
31 
32 #define MagickLogFilename "log.xml"
33 
34 typedef enum
35 {
37  NoEvents = 0x00000,
38  TraceEvent = 0x00001,
39  AnnotateEvent = 0x00002,
40  BlobEvent = 0x00004,
41  CacheEvent = 0x00008,
42  CoderEvent = 0x00010,
43  ConfigureEvent = 0x00020,
44  DeprecateEvent = 0x00040,
45  DrawEvent = 0x00080,
46  ExceptionEvent = 0x00100,
47  ImageEvent = 0x00200,
48  LocaleEvent = 0x00400,
49  ModuleEvent = 0x00800,
50  PolicyEvent = 0x01000,
51  ResourceEvent = 0x02000,
52  TransformEvent = 0x04000,
53  UserEvent = 0x09000,
54  WandEvent = 0x10000,
55  X11Event = 0x20000,
56  AccelerateEvent = 0x40000,
57  AllEvents = 0x7fffffff
59 
60 typedef struct _LogInfo
61  LogInfo;
62 
63 typedef void
64  (*MagickLogMethod)(const LogEventType,const char *);
65 
66 extern MagickExport char
67  **GetLogList(const char *,size_t *,ExceptionInfo *);
68 
69 extern MagickExport const char
70  *GetLogName(void),
71  *SetLogName(const char *);
72 
73 extern MagickExport const LogInfo
74  **GetLogInfoList(const char *,size_t *,ExceptionInfo *);
75 
77  SetLogEventMask(const char *);
78 
80  IsEventLogging(void) magick_attribute((__pure__)),
83  LogMagickEvent(const LogEventType,const char *,const char *,const size_t,
84  const char *,...) magick_attribute((__format__ (__printf__,5,6))),
85  LogMagickEventList(const LogEventType,const char *,const char *,const size_t,
86  const char *,va_list) magick_attribute((__format__ (__printf__,5,0)));
87 
88 extern MagickExport void
91  SetLogFormat(const char *),
93 
94 #if defined(__cplusplus) || defined(c_plusplus)
95 }
96 #endif
97 
98 #endif
DirectorySeparator
#define DirectorySeparator
Definition: studio.h:270
_LogInfo::event_semaphore
SemaphoreInfo * event_semaphore
Definition: log.c:141
HandlerInfo
struct _HandlerInfo HandlerInfo
LockSemaphoreInfo
MagickExport void LockSemaphoreInfo(SemaphoreInfo *semaphore_info)
Definition: semaphore.c:293
MagickExport
#define MagickExport
Definition: method-attribute.h:80
LogMagickEventList
MagickExport MagickBooleanType LogMagickEventList(const LogEventType type, const char *module, const char *function, const size_t line, const char *format, va_list operands)
Definition: log.c:1292
magick_unused
#define magick_unused(x)
Definition: method-attribute.h:105
GetStringInfoPath
MagickExport const char * GetStringInfoPath(const StringInfo *string_info)
Definition: string.c:1283
CoderEvent
@ CoderEvent
Definition: log.h:42
IsLinkedListEmpty
MagickExport MagickBooleanType IsLinkedListEmpty(const LinkedListInfo *list_info)
Definition: hashmap.c:1205
_LogMapInfo::filename
const char * filename
Definition: log.c:156
magick_unreferenced
#define magick_unreferenced(x)
Definition: method-attribute.h:106
HeadPath
@ HeadPath
Definition: utility.h:30
LogCompare
static int LogCompare(const void *x, const void *y)
Definition: log.c:562
_LogInfo::method
MagickLogMethod method
Definition: log.c:138
GetMagickModule
#define GetMagickModule()
Definition: log.h:29
nt-base-private.h
MagickStatusType
unsigned int MagickStatusType
Definition: magick-type.h:127
_LogInfo::path
char * path
Definition: log.c:115
GetValueFromLinkedList
MagickExport void * GetValueFromLinkedList(LinkedListInfo *list_info, const size_t index)
Definition: hashmap.c:788
X11Event
@ X11Event
Definition: log.h:55
BlobEvent
@ BlobEvent
Definition: log.h:40
GetLogList
MagickExport char ** GetLogList(const char *, size_t *, ExceptionInfo *)
Definition: log.c:577
WandEvent
@ WandEvent
Definition: log.h:54
MagickCoreSignature
#define MagickCoreSignature
Definition: method-attribute.h:86
FormatLocaleString
MagickExport ssize_t FormatLocaleString(char *magick_restrict string, const size_t length, const char *magick_restrict format,...)
Definition: locale.c:497
ResizeQuantumMemory
MagickExport void * ResizeQuantumMemory(void *memory, const size_t count, const size_t quantum)
Definition: memory.c:1458
MagickLogEventOptions
@ MagickLogEventOptions
Definition: option.h:68
_LogInfo::generations
size_t generations
Definition: log.c:121
_EventInfo::name
char * name
Definition: log.c:91
FileHandler
@ FileHandler
Definition: log.c:82
LogMagickEventList
MagickExport MagickBooleanType LogMagickEventList(const LogEventType, const char *, const char *, const size_t, const char *, va_list) magick_attribute((__format__(__printf__
SetLogFormat
MagickExport void SetLogFormat(const char *format)
Definition: log.c:1813
DestroyLinkedList
MagickExport LinkedListInfo * DestroyLinkedList(LinkedListInfo *list_info, void *(*relinquish_value)(void *))
Definition: hashmap.c:398
_LogInfo::signature
size_t signature
Definition: log.c:144
_LogMapInfo::event_mask
const LogEventType event_mask
Definition: log.c:150
ResetLinkedListIterator
MagickExport void ResetLinkedListIterator(LinkedListInfo *list_info)
Definition: hashmap.c:1921
_EventInfo
Definition: log.c:89
TranslateEvent
static char * TranslateEvent(const LogEventType magick_unused(type), const char *module, const char *function, const size_t line, const char *domain, const char *event)
Definition: log.c:950
LogComponentTerminus
MagickExport void LogComponentTerminus(void)
Definition: log.c:905
PolicyEvent
@ PolicyEvent
Definition: log.h:50
SetLogName
MagickExport const char * SetLogName(const char *)
Definition: log.c:1897
ParseLogHandlers
static LogHandlerType ParseLogHandlers(static MagickBooleanType LoadLogCache(LinkedListInfo const char *)
Definition: log.c:224
SetLogEventMask
MagickExport LogEventType SetLogEventMask(const char *)
Definition: log.c:1766
StdoutHandler
@ StdoutHandler
Definition: log.c:80
ResourceLimitError
@ ResourceLimitError
Definition: exception.h:55
TransformEvent
@ TransformEvent
Definition: log.h:52
utility.h
_HandlerInfo::name
const char name[10]
Definition: log.c:100
DeprecateEvent
@ DeprecateEvent
Definition: log.h:44
MagickLogMethod
void(* MagickLogMethod)(const LogEventType, const char *)
Definition: log.h:64
version.h
string_.h
DestroyString
MagickExport char * DestroyString(char *string)
Definition: string.c:821
TranslateFilename
static char * TranslateFilename(const LogInfo *log_info)
Definition: log.c:1184
GetPathComponent
MagickExport void GetPathComponent(const char *path, PathType type, char *component)
Definition: utility.c:1218
MagickTrue
@ MagickTrue
Definition: magick-type.h:201
blob.h
semaphore.h
LogHandlerType
LogHandlerType
Definition: log.c:76
CheckEventLogging
static void CheckEventLogging()
Definition: log.c:670
_LogInfo::handler_mask
LogHandlerType handler_mask
Definition: log.c:112
SetLogEventMask
MagickExport LogEventType SetLogEventMask(const char *events)
Definition: log.c:1766
_LogInfo::stealth
MagickBooleanType stealth
Definition: log.c:132
AllEvents
@ AllEvents
Definition: log.h:57
thread-private.h
hashmap.h
TraceEvent
@ TraceEvent
Definition: log.h:38
_LogInfo::append
MagickBooleanType append
Definition: log.c:131
AcquireMagickMemory
MagickExport void * AcquireMagickMemory(const size_t size)
Definition: memory.c:552
GetMagickTime
MagickExport time_t GetMagickTime(void)
Definition: timer.c:327
_LogInfo::format
char * format
Definition: log.c:118
ConsoleHandler
@ ConsoleHandler
Definition: log.c:79
GetLogInfoList
MagickExport const LogInfo ** GetLogInfoList(const char *, size_t *, ExceptionInfo *)
Definition: log.c:484
FormatLocaleFile
MagickExport ssize_t FormatLocaleFile(FILE *file, const char *magick_restrict format,...)
Definition: locale.c:402
SemaphoreInfo
Definition: semaphore.c:61
log_name
static char log_name[MaxTextExtent]
Definition: log.c:208
ConcatenateMagickString
MagickExport size_t ConcatenateMagickString(char *magick_restrict destination, const char *magick_restrict source, const size_t length)
Definition: string.c:426
LogInfoCompare
static int LogInfoCompare(const void *x, const void *y)
Definition: log.c:467
LocaleNCompare
MagickExport int LocaleNCompare(const char *p, const char *q, const size_t length)
Definition: locale.c:1570
GetLogInfo
static LogInfo * GetLogInfo(const char *name, ExceptionInfo *exception)
Definition: log.c:404
CacheEvent
@ CacheEvent
Definition: log.h:41
GetElapsedTime
MagickExport double GetElapsedTime(TimerInfo *time_info)
Definition: timer.c:298
ImageEvent
@ ImageEvent
Definition: log.h:47
GetMagickThreadSignature
static size_t GetMagickThreadSignature(void)
Definition: thread-private.h:82
ListLogInfo
MagickExport MagickBooleanType ListLogInfo(FILE *file, ExceptionInfo *exception)
Definition: log.c:753
GetLogInfoList
MagickExport const LogInfo ** GetLogInfoList(const char *pattern, size_t *number_preferences, ExceptionInfo *exception)
Definition: log.c:484
_LogInfo::timer
TimerInfo timer
Definition: log.c:135
LogMapInfo
struct _LogMapInfo LogMapInfo
UserEvent
@ UserEvent
Definition: log.h:53
GetLogList
MagickExport char ** GetLogList(const char *pattern, size_t *number_preferences, ExceptionInfo *exception)
Definition: log.c:577
ConfigureEvent
@ ConfigureEvent
Definition: log.h:43
_LogInfo::filename
char * filename
Definition: log.c:117
LogComponentGenesis
MagickExport MagickBooleanType LogComponentGenesis(void)
Definition: log.c:849
MagickMaxRecursionDepth
#define MagickMaxRecursionDepth
Definition: studio.h:377
SetLogFormat
MagickExport MagickBooleanType MagickExport void SetLogFormat(const char *)
timer.h
LocaleCompare
MagickExport int LocaleCompare(const char *p, const char *q)
Definition: locale.c:1435
UndefinedHandler
@ UndefinedHandler
Definition: log.c:77
DestroyExceptionInfo
MagickExport ExceptionInfo * DestroyExceptionInfo(ExceptionInfo *exception)
Definition: exception.c:448
CloseMagickLog
MagickExport void CloseMagickLog(void)
Definition: log.c:356
CloseMagickLog
MagickExport MagickBooleanType MagickExport void CloseMagickLog(void)
_LinkedListInfo
Definition: hashmap.c:78
LogComponentGenesis
MagickExport MagickBooleanType LogComponentGenesis(void)
xml-tree-private.h
MagickFalse
@ MagickFalse
Definition: magick-type.h:200
GetLogName
MagickExport const char * GetLogName(void)
Definition: log.c:641
DrawEvent
@ DrawEvent
Definition: log.h:45
EventInfo
struct _EventInfo EventInfo
IsEventLogging
MagickExport MagickBooleanType IsEventLogging(void)
Definition: log.c:725
xml-tree.h
GetNumberOfElementsInLinkedList
MagickExport size_t GetNumberOfElementsInLinkedList(const LinkedListInfo *list_info)
Definition: hashmap.c:679
LogMagickEvent
MagickExport MagickBooleanType LogMagickEvent(const LogEventType, const char *, const char *, const size_t, const char *,...) magick_attribute((__format__(__printf__
CommandOptionToMnemonic
MagickExport const char * CommandOptionToMnemonic(const CommandOption option, const ssize_t type)
Definition: option.c:2311
AppendValueToLinkedList
MagickExport MagickBooleanType AppendValueToLinkedList(LinkedListInfo *list_info, const void *value)
Definition: hashmap.c:150
AllocateSemaphoreInfo
MagickExport SemaphoreInfo * AllocateSemaphoreInfo(void)
Definition: semaphore.c:192
GetClientName
MagickExport const char * GetClientName(void)
Definition: client.c:65
AnnotateEvent
@ AnnotateEvent
Definition: log.h:39
_LogInfo::limit
size_t limit
Definition: log.c:122
DestroyLogElement
static void * DestroyLogElement(void *log_info)
Definition: log.c:881
_EventInfo::event
LogEventType event
Definition: log.c:94
ListLogInfo
MagickExport MagickBooleanType ListLogInfo(FILE *, ExceptionInfo *)
ActivateSemaphoreInfo
MagickExport void ActivateSemaphoreInfo(SemaphoreInfo **semaphore_info)
Definition: semaphore.c:98
SetLogMethod
MagickExport void SetLogMethod(MagickLogMethod method)
Definition: log.c:1854
_LogInfo::name
char * name
Definition: log.c:116
ContinueTimer
MagickExport MagickBooleanType ContinueTimer(TimerInfo *time_info)
Definition: timer.c:126
_LogMapInfo::format
const char * format
Definition: log.c:157
fopen_utf8
static FILE * fopen_utf8(const char *path, const char *mode)
Definition: utility-private.h:112
NoHandler
@ NoHandler
Definition: log.c:78
DestroySemaphoreInfo
MagickExport void DestroySemaphoreInfo(SemaphoreInfo **semaphore_info)
Definition: semaphore.c:351
StderrHandler
@ StderrHandler
Definition: log.c:81
log.h
GetLogName
MagickExport const char * GetLogName(void)
magick_attribute
MagickExport MagickBooleanType magick_attribute((deprecated))
ConstantString
MagickExport char * ConstantString(const char *source)
Definition: string.c:711
LocaleEvent
@ LocaleEvent
Definition: log.h:48
_HandlerInfo
Definition: log.c:98
LogEventType
LogEventType
Definition: log.h:35
LoadLogCache
static MagickBooleanType LoadLogCache(LinkedListInfo *cache, const char *xml, const char *filename, const size_t depth, ExceptionInfo *exception)
Definition: log.c:1469
MagickBooleanType
MagickBooleanType
Definition: magick-type.h:199
_TimerInfo
Definition: timer.h:41
ModuleEvent
@ ModuleEvent
Definition: log.h:49
GetNextValueInLinkedList
MagickExport void * GetNextValueInLinkedList(LinkedListInfo *list_info)
Definition: hashmap.c:606
RelinquishMagickMemory
MagickExport void * RelinquishMagickMemory(void *memory)
Definition: memory.c:1162
_LogInfo::file
FILE * file
Definition: log.c:125
ExceptionEvent
@ ExceptionEvent
Definition: log.h:46
_ExceptionInfo
Definition: exception.h:103
utility-private.h
GetUserTime
MagickExport double GetUserTime(TimerInfo *time_info)
Definition: timer.c:410
IsPathAccessible
MagickExport MagickBooleanType IsPathAccessible(const char *path)
Definition: utility.c:1489
studio.h
ParseCommandOption
MagickExport ssize_t ParseCommandOption(const CommandOption option, const MagickBooleanType list, const char *options)
Definition: option.c:2605
_LogMapInfo::handler_mask
const LogHandlerType handler_mask
Definition: log.c:153
LogFilename
#define LogFilename
Definition: log.c:70
_LogMapInfo
Definition: log.c:148
_HandlerInfo::handler
LogHandlerType handler
Definition: log.c:103
EventHandler
@ EventHandler
Definition: log.c:84
FileToXML
MagickPrivate char * FileToXML(const char *, const size_t)
Definition: xml-tree.c:597
_LogInfo
Definition: log.c:107
SetLogName
MagickExport const char * SetLogName(const char *name)
Definition: log.c:1897
memory_.h
GetStringInfoDatum
MagickExport unsigned char * GetStringInfoDatum(const StringInfo *string_info)
Definition: string.c:1196
_LogInfo::event_mask
LogEventType event_mask
Definition: log.c:109
FormatMagickTime
MagickExport ssize_t FormatMagickTime(const time_t time, const size_t length, char *timestamp)
Definition: timer.c:256
GetTimerInfo
MagickExport void GetTimerInfo(TimerInfo *time_info)
Definition: timer.c:374
NewLinkedList
MagickExport LinkedListInfo * NewLinkedList(const size_t capacity)
Definition: hashmap.c:1363
exception-private.h
timer-private.h
ThrowMagickException
MagickExport MagickBooleanType ThrowMagickException(ExceptionInfo *exception, const char *module, const char *function, const size_t line, const ExceptionType severity, const char *tag, const char *format,...)
Definition: exception.c:1149
ThrowFatalException
#define ThrowFatalException(severity, tag)
Definition: exception-private.h:42
UnlockSemaphoreInfo
MagickExport void UnlockSemaphoreInfo(SemaphoreInfo *semaphore_info)
Definition: semaphore.c:449
IsEventLogging
MagickExport MagickBooleanType IsEventLogging(void) magick_attribute((__pure__))
exception.h
IsLogCacheInstantiated
static MagickBooleanType IsLogCacheInstantiated(ExceptionInfo *exception)
Definition: log.c:689
ResourceEvent
@ ResourceEvent
Definition: log.h:51
GlobExpression
MagickExport MagickBooleanType GlobExpression(const char *magick_restrict expression, const char *magick_restrict pattern, const MagickBooleanType case_insensitive)
Definition: token.c:355
option.h
GetConfigureOptions
MagickExport LinkedListInfo * GetConfigureOptions(const char *filename, ExceptionInfo *exception)
Definition: configure.c:622
LogComponentTerminus
MagickExport MagickBooleanType MagickExport void LogComponentTerminus(void)
event_logging
static MagickBooleanType event_logging
Definition: log.c:214
CopyMagickString
MagickExport size_t CopyMagickString(char *magick_restrict destination, const char *magick_restrict source, const size_t length)
Definition: string.c:764
UndefinedEvents
@ UndefinedEvents
Definition: log.h:36
DestroyConfigureOptions
MagickExport LinkedListInfo * DestroyConfigureOptions(LinkedListInfo *options)
Definition: configure.c:294
NoEvents
@ NoEvents
Definition: log.h:37
LogMagickEvent
MagickExport MagickBooleanType LogMagickEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
Definition: log.c:1420
AccelerateEvent
@ AccelerateEvent
Definition: log.h:56
RemoveElementByValueFromLinkedList
MagickExport void * RemoveElementByValueFromLinkedList(LinkedListInfo *list_info, const void *value)
Definition: hashmap.c:1597
AcquireExceptionInfo
MagickExport ExceptionInfo * AcquireExceptionInfo(void)
Definition: exception.c:113
MaxTextExtent
#define MaxTextExtent
Definition: method-attribute.h:89
GetNextToken
MagickExport magick_hot_spot size_t GetNextToken(const char *magick_restrict start, const char **magick_restrict end, const size_t extent, char *magick_restrict token)
Definition: token.c:174
SetLogMethod
MagickExport MagickBooleanType MagickExport void SetLogMethod(MagickLogMethod)
Definition: log.c:1854
string-private.h
log_cache
static LinkedListInfo * log_cache
Definition: log.c:211
MethodHandler
@ MethodHandler
Definition: log.c:85
token.h
module
const char * module
Definition: static.c:70
ResourceLimitFatalError
@ ResourceLimitFatalError
Definition: exception.h:78
AcquireString
MagickExport char * AcquireString(const char *source)
Definition: string.c:126
ConfigureError
@ ConfigureError
Definition: exception.h:75
log_semaphore
static SemaphoreInfo * log_semaphore
Definition: log.c:217
client.h
MagickLibVersionText
#define MagickLibVersionText
Definition: version.h:31
LogHandlers
static const HandlerInfo LogHandlers[32]
Definition: log.c:164
_StringInfo
Definition: string_.h:30
LogMap
static const LogMapInfo LogMap[]
Definition: log.c:201
InsertValueInLinkedList
MagickExport MagickBooleanType InsertValueInLinkedList(LinkedListInfo *list_info, const size_t index, const void *value)
Definition: hashmap.c:990
thread_.h
DebugHandler
@ DebugHandler
Definition: log.c:83
AcquireQuantumMemory
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
Definition: memory.c:665
configure.h
MagickOffsetType
ssize_t MagickOffsetType
Definition: magick-type.h:135
StringToUnsignedLong
static unsigned long StringToUnsignedLong(const char *magick_restrict value)
Definition: string-private.h:124
_LogInfo::generation
size_t generation
Definition: log.c:128