1/*
2 * Copyright (C) 2003, 2006, 2013 Apple Inc.  All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 *    notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 *    notice, this list of conditions and the following disclaimer in the
11 *    documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#ifndef Logging_h
27#define Logging_h
28
29#include <wtf/Assertions.h>
30#include <wtf/Forward.h>
31
32#if !LOG_DISABLED
33
34#ifndef LOG_CHANNEL_PREFIX
35#define LOG_CHANNEL_PREFIX Log
36#endif
37
38namespace WebCore {
39
40#define WEBCORE_LOG_CHANNELS(M) \
41    M(Animations) \
42    M(Archives) \
43    M(BackForward) \
44    M(Compositing) \
45    M(DiskImageCache) \
46    M(Editing) \
47    M(Events) \
48    M(FTP) \
49    M(FileAPI) \
50    M(Frames) \
51    M(Gamepad) \
52    M(History) \
53    M(IconDatabase) \
54    M(LiveConnect) \
55    M(Loading) \
56    M(Media) \
57    M(MediaSource) \
58    M(MediaSourceSamples) \
59    M(MemoryPressure) \
60    M(Network) \
61    M(NotYetImplemented) \
62    M(PageCache) \
63    M(PlatformLeaks) \
64    M(Plugins) \
65    M(PopupBlocking) \
66    M(Progress) \
67    M(RemoteInspector) \
68    M(ResourceLoading) \
69    M(SQLDatabase) \
70    M(SpellingAndGrammar) \
71    M(StorageAPI) \
72    M(Threading) \
73    M(WebAudio) \
74    M(WebGL) \
75    M(WebReplay) \
76
77#define DECLARE_LOG_CHANNEL(name) \
78    extern WTFLogChannel JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, name);
79
80WEBCORE_LOG_CHANNELS(DECLARE_LOG_CHANNEL)
81
82#undef DECLARE_LOG_CHANNEL
83
84    String logLevelString();
85    bool isLogChannelEnabled(const String& name);
86    void initializeLoggingChannelsIfNecessary();
87}
88
89#endif // !LOG_DISABLED
90
91#endif // Logging_h
92