18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    This library is free software; you can redistribute it and/or
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    modify it under the terms of the GNU Library General Public
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    License as published by the Free Software Foundation; either
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    version 2 of the License, or (at your option) any later version.
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    This library is distributed in the hope that it will be useful,
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    but WITHOUT ANY WARRANTY; without even the implied warranty of
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Library General Public License for more details.
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    You should have received a copy of the GNU Library General Public License
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    along with this library; see the file COPYING.LIB.  If not, write to
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    Boston, MA 02110-1301, USA.
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h"
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "Logging.h"
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
23545e470e52f0ac6a3a072bf559c796b42c6066b6Ben Murdoch#include "PlatformString.h"
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <QDebug>
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <QStringList>
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore {
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid InitializeLoggingChannelsIfNecessary()
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    static bool haveInitializedLoggingChannels = false;
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (haveInitializedLoggingChannels)
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        return;
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    haveInitializedLoggingChannels = true;
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
37635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project    QByteArray loggingEnv = qgetenv("QT_WEBKIT_LOG");
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    if (loggingEnv.isEmpty())
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        return;
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if defined(NDEBUG)
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    qWarning("This is a release build. Setting QT_WEBKIT_LOG will have no effect.");
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else
440bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    QStringList channels = QString::fromLocal8Bit(loggingEnv).split(QLatin1String(","));
450bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch    for (int i = 0; i < channels.count(); i++) {
460bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch        if (WTFLogChannel* channel = getChannelFromName(channels.at(i)))
470bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch            channel->state = WTFLogChannelOn;
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    }
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // By default we log calls to notImplemented(). This can be turned
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    // off by setting the environment variable DISABLE_NI_WARNING to 1
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    LogNotYetImplemented.state = WTFLogChannelOn;
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore
57