MagickCore  6.9.10
Convert, Edit, Or Compose Bitmap Images
log.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2019 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.
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:266
HandlerInfo
struct _HandlerInfo HandlerInfo
LockSemaphoreInfo
MagickExport void LockSemaphoreInfo(SemaphoreInfo *semaphore_info)
Definition: semaphore.c:345
MagickExport
#define MagickExport
Definition: method-attribute.h:80
FormatMagickTime
MagickExport ssize_t FormatMagickTime(const time_t time, const size_t length, char *timestamp)
Definition: string.c:1168
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:1271
magick_unused
#define magick_unused(x)
Definition: method-attribute.h:105
GetStringInfoPath
MagickExport const char * GetStringInfoPath(const StringInfo *string_info)
Definition: string.c:1362
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:152
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:553
_LogInfo::method
MagickLogMethod method
Definition: log.c:140
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:114
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:568
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:502
ResizeQuantumMemory
MagickExport void * ResizeQuantumMemory(void *memory, const size_t count, const size_t quantum)
Definition: memory.c:1316
MagickLogEventOptions
@ MagickLogEventOptions
Definition: option.h:68
_LogInfo::generations
size_t generations
Definition: log.c:120
_EventInfo::name
char * name
Definition: log.c:90
FileHandler
@ FileHandler
Definition: log.c:81
GetNextToken
MagickExport void GetNextToken(const char *start, const char **end, const size_t extent, char *token)
Definition: token.c:172
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:1788
DestroyLinkedList
MagickExport LinkedListInfo * DestroyLinkedList(LinkedListInfo *list_info, void *(*relinquish_value)(void *))
Definition: hashmap.c:398
_LogInfo::signature
size_t signature
Definition: log.c:137
ParseLogHandlers
static LogHandlerType ParseLogHandlers(static MagickBooleanType IsLogCacheInstantiated(ExceptionInfo *) magick_attribute((__pure__)) const char *)
Definition: log.c:220
_LogMapInfo::event_mask
const LogEventType event_mask
Definition: log.c:146
ResetLinkedListIterator
MagickExport void ResetLinkedListIterator(LinkedListInfo *list_info)
Definition: hashmap.c:1921
_EventInfo
Definition: log.c:88
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:945
LogComponentTerminus
MagickExport void LogComponentTerminus(void)
Definition: log.c:895
PolicyEvent
@ PolicyEvent
Definition: log.h:50
SetLogName
MagickExport const char * SetLogName(const char *)
Definition: log.c:1872
SetLogEventMask
MagickExport LogEventType SetLogEventMask(const char *)
Definition: log.c:1741
StdoutHandler
@ StdoutHandler
Definition: log.c:79
ResourceLimitError
@ ResourceLimitError
Definition: exception.h:55
TransformEvent
@ TransformEvent
Definition: log.h:52
utility.h
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:820
TranslateFilename
static char * TranslateFilename(const LogInfo *log_info)
Definition: log.c:1170
GetPathComponent
MagickExport void GetPathComponent(const char *path, PathType type, char *component)
Definition: utility.c:1208
MagickTrue
@ MagickTrue
Definition: magick-type.h:194
blob.h
semaphore.h
LogHandlerType
LogHandlerType
Definition: log.c:75
CheckEventLogging
static void CheckEventLogging()
Definition: log.c:661
_LogInfo::handler_mask
LogHandlerType handler_mask
Definition: log.c:111
SetLogEventMask
MagickExport LogEventType SetLogEventMask(const char *events)
Definition: log.c:1741
CopyMagickString
MagickExport size_t CopyMagickString(char *destination, const char *source, const size_t length)
Definition: string.c:752
_LogInfo::stealth
MagickBooleanType stealth
Definition: log.c:131
AllEvents
@ AllEvents
Definition: log.h:57
thread-private.h
hashmap.h
TraceEvent
@ TraceEvent
Definition: log.h:38
_LogInfo::append
MagickBooleanType append
Definition: log.c:130
AcquireMagickMemory
MagickExport void * AcquireMagickMemory(const size_t size)
Definition: memory.c:473
_LogInfo::format
char * format
Definition: log.c:117
ConsoleHandler
@ ConsoleHandler
Definition: log.c:78
GetLogInfoList
MagickExport const LogInfo ** GetLogInfoList(const char *, size_t *, ExceptionInfo *)
Definition: log.c:475
FormatLocaleFile
MagickExport ssize_t FormatLocaleFile(FILE *file, const char *magick_restrict format,...)
Definition: locale.c:407
SemaphoreInfo
Definition: semaphore.c:60
log_name
static char log_name[MaxTextExtent]
Definition: log.c:204
LogInfoCompare
static int LogInfoCompare(const void *x, const void *y)
Definition: log.c:458
LocaleNCompare
MagickExport int LocaleNCompare(const char *p, const char *q, const size_t length)
Definition: locale.c:1542
GetLogInfo
static LogInfo * GetLogInfo(const char *name, ExceptionInfo *exception)
Definition: log.c:395
CacheEvent
@ CacheEvent
Definition: log.h:41
GetElapsedTime
MagickExport double GetElapsedTime(TimerInfo *time_info)
Definition: timer.c:248
ImageEvent
@ ImageEvent
Definition: log.h:47
GetMagickThreadSignature
static size_t GetMagickThreadSignature(void)
Definition: thread-private.h:69
ListLogInfo
MagickExport MagickBooleanType ListLogInfo(FILE *file, ExceptionInfo *exception)
Definition: log.c:744
GetLogInfoList
MagickExport const LogInfo ** GetLogInfoList(const char *pattern, size_t *number_preferences, ExceptionInfo *exception)
Definition: log.c:475
_LogInfo::timer
TimerInfo timer
Definition: log.c:134
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:568
ConfigureEvent
@ ConfigureEvent
Definition: log.h:43
_LogInfo::filename
char * filename
Definition: log.c:116
LogComponentGenesis
MagickExport MagickBooleanType LogComponentGenesis(void)
Definition: log.c:840
MagickMaxRecursionDepth
#define MagickMaxRecursionDepth
Definition: studio.h:373
SetLogFormat
MagickExport MagickBooleanType MagickExport void SetLogFormat(const char *)
timer.h
LocaleCompare
MagickExport int LocaleCompare(const char *p, const char *q)
Definition: locale.c:1440
UndefinedHandler
@ UndefinedHandler
Definition: log.c:76
DestroyExceptionInfo
MagickExport ExceptionInfo * DestroyExceptionInfo(ExceptionInfo *exception)
Definition: exception.c:441
CloseMagickLog
MagickExport void CloseMagickLog(void)
Definition: log.c:347
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:193
GetLogName
MagickExport const char * GetLogName(void)
Definition: log.c:632
DrawEvent
@ DrawEvent
Definition: log.h:45
EventInfo
struct _EventInfo EventInfo
IsEventLogging
MagickExport MagickBooleanType IsEventLogging(void)
Definition: log.c:716
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:2292
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:64
AnnotateEvent
@ AnnotateEvent
Definition: log.h:39
_LogInfo::limit
size_t limit
Definition: log.c:121
DestroyLogElement
static void * DestroyLogElement(void *log_info)
Definition: log.c:873
_EventInfo::event
LogEventType event
Definition: log.c:93
ListLogInfo
MagickExport MagickBooleanType ListLogInfo(FILE *, ExceptionInfo *)
ActivateSemaphoreInfo
MagickExport void ActivateSemaphoreInfo(SemaphoreInfo **semaphore_info)
Definition: semaphore.c:97
SetLogMethod
MagickExport void SetLogMethod(MagickLogMethod method)
Definition: log.c:1829
log_semaphore
static SemaphoreInfo * log_semaphore
Definition: log.c:214
_LogInfo::name
char * name
Definition: log.c:115
GlobExpression
MagickExport MagickBooleanType GlobExpression(const char *expression, const char *pattern, const MagickBooleanType case_insensitive)
Definition: token.c:347
ContinueTimer
MagickExport MagickBooleanType ContinueTimer(TimerInfo *time_info)
Definition: timer.c:123
_LogMapInfo::format
const char * format
Definition: log.c:153
fopen_utf8
static FILE * fopen_utf8(const char *path, const char *mode)
Definition: utility-private.h:116
NoHandler
@ NoHandler
Definition: log.c:77
DestroySemaphoreInfo
MagickExport void DestroySemaphoreInfo(SemaphoreInfo **semaphore_info)
Definition: semaphore.c:293
StderrHandler
@ StderrHandler
Definition: log.c:80
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:697
LocaleEvent
@ LocaleEvent
Definition: log.h:48
_HandlerInfo
Definition: log.c:97
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:1447
MagickBooleanType
MagickBooleanType
Definition: magick-type.h:192
_TimerInfo
Definition: timer.h:41
ConcatenateMagickString
MagickExport size_t ConcatenateMagickString(char *destination, const char *source, const size_t length)
Definition: string.c:424
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:1077
_LogInfo::file
FILE * file
Definition: log.c:124
ExceptionEvent
@ ExceptionEvent
Definition: log.h:46
_ExceptionInfo
Definition: exception.h:103
utility-private.h
GetUserTime
MagickExport double GetUserTime(TimerInfo *time_info)
Definition: timer.c:317
IsPathAccessible
MagickExport MagickBooleanType IsPathAccessible(const char *path)
Definition: utility.c:1460
studio.h
ParseCommandOption
MagickExport ssize_t ParseCommandOption(const CommandOption option, const MagickBooleanType list, const char *options)
Definition: option.c:2586
_LogMapInfo::handler_mask
const LogHandlerType handler_mask
Definition: log.c:149
LogFilename
#define LogFilename
Definition: log.c:69
_LogMapInfo
Definition: log.c:144
_HandlerInfo::handler
LogHandlerType handler
Definition: log.c:102
EventHandler
@ EventHandler
Definition: log.c:83
FileToXML
MagickPrivate char * FileToXML(const char *, const size_t)
Definition: xml-tree.c:598
_LogInfo
Definition: log.c:106
SetLogName
MagickExport const char * SetLogName(const char *name)
Definition: log.c:1872
memory_.h
GetStringInfoDatum
MagickExport unsigned char * GetStringInfoDatum(const StringInfo *string_info)
Definition: string.c:1275
_LogInfo::event_mask
LogEventType event_mask
Definition: log.c:108
GetTimerInfo
MagickExport void GetTimerInfo(TimerInfo *time_info)
Definition: timer.c:281
NewLinkedList
MagickExport LinkedListInfo * NewLinkedList(const size_t capacity)
Definition: hashmap.c:1363
exception-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:1068
ThrowFatalException
#define ThrowFatalException(severity, tag)
Definition: exception-private.h:42
_HandlerInfo::name
const char * name
Definition: log.c:99
UnlockSemaphoreInfo
MagickExport void UnlockSemaphoreInfo(SemaphoreInfo *semaphore_info)
Definition: semaphore.c:450
IsEventLogging
MagickExport MagickBooleanType IsEventLogging(void) magick_attribute((__pure__))
exception.h
IsLogCacheInstantiated
static MagickBooleanType IsLogCacheInstantiated(ExceptionInfo *exception)
Definition: log.c:680
ResourceEvent
@ ResourceEvent
Definition: log.h:51
option.h
GetConfigureOptions
MagickExport LinkedListInfo * GetConfigureOptions(const char *filename, ExceptionInfo *exception)
Definition: configure.c:653
LogComponentTerminus
MagickExport MagickBooleanType MagickExport void LogComponentTerminus(void)
event_logging
static MagickBooleanType event_logging
Definition: log.c:210
UndefinedEvents
@ UndefinedEvents
Definition: log.h:36
DestroyConfigureOptions
MagickExport LinkedListInfo * DestroyConfigureOptions(LinkedListInfo *options)
Definition: configure.c:325
event_semaphore
static SemaphoreInfo * event_semaphore
Definition: log.c:213
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:1399
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:106
MaxTextExtent
#define MaxTextExtent
Definition: method-attribute.h:89
SetLogMethod
MagickExport MagickBooleanType MagickExport void SetLogMethod(MagickLogMethod)
Definition: log.c:1829
string-private.h
log_cache
static LinkedListInfo * log_cache
Definition: log.c:207
MethodHandler
@ MethodHandler
Definition: log.c:84
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:125
ConfigureError
@ ConfigureError
Definition: exception.h:75
client.h
MagickLibVersionText
#define MagickLibVersionText
Definition: version.h:31
LogHandlers
static const HandlerInfo LogHandlers[32]
Definition: log.c:160
_StringInfo
Definition: string_.h:30
LogMap
static const LogMapInfo LogMap[]
Definition: log.c:197
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:82
AcquireQuantumMemory
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
Definition: memory.c:544
configure.h
StringToUnsignedLong
static unsigned long StringToUnsignedLong(const char *magick_restrict value)
Definition: string-private.h:73
_LogInfo::generation
size_t generation
Definition: log.c:127