1 /*
2 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
3 * Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia
4 * Copyright (C) 2009-2010 ProFUSION embedded systems
5 * Copyright (C) 2009-2010 Samsung Electronics
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details.
16 *
17 * You should have received a copy of the GNU Library General Public License
18 * along with this library; see the file COPYING.LIB. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA.
21 */
22
23 #include "config.h"
24 #include "Logging.h"
25
26 #include "PlatformString.h"
27 #include <Eina.h>
28
29 namespace WebCore {
30
InitializeLoggingChannelsIfNecessary()31 void InitializeLoggingChannelsIfNecessary()
32 {
33 static bool didInitializeLoggingChannels = false;
34 if (didInitializeLoggingChannels)
35 return;
36
37 didInitializeLoggingChannels = true;
38
39 char* logEnv = getenv("WEBKIT_DEBUG");
40 if (!logEnv)
41 return;
42
43 #if defined(NDEBUG)
44 EINA_LOG_WARN("WEBKIT_DEBUG is not empty, but this is a release build. Notice that many log messages will only appear in a debug build.");
45 #endif
46
47 char** logv = eina_str_split(logEnv, ",", -1);
48
49 EINA_SAFETY_ON_NULL_RETURN(logv);
50
51 for (int i = 0; logv[i]; i++) {
52 if (WTFLogChannel* channel = getChannelFromName(logv[i]))
53 channel->state = WTFLogChannelOn;
54 }
55
56 free(*logv);
57 free(logv);
58
59 // To disable logging notImplemented set the DISABLE_NI_WARNING
60 // environment variable to 1.
61 LogNotYetImplemented.state = WTFLogChannelOn;
62 }
63
64 }
65