Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Side by Side Diff: third_party/WebKit/Source/wtf/DataLog.cpp

Issue 2769603002: Move files in wtf/ to platform/wtf/ (Part 8). (Closed)
Patch Set: Rebase. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/wtf/DataLog.h ('k') | third_party/WebKit/Source/wtf/Deque.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright (C) 2012 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 #include "wtf/DataLog.h"
27
28 #if OS(POSIX)
29 #include <pthread.h>
30 #include <unistd.h>
31 #endif
32
33 #define DATA_LOG_TO_FILE 0
34
35 // Uncomment to force logging to the given file regardless of what the
36 // environment variable says. Note that we will append ".<pid>.txt" where <pid>
37 // is the PID.
38
39 // This path won't work on Windows, make sure to change to something like
40 // C:\\Users\\<more path>\\log.txt.
41 #define DATA_LOG_FILENAME "/tmp/WTFLog"
42
43 namespace WTF {
44
45 #if OS(POSIX)
46 static pthread_once_t initializeLogFileOnceKey = PTHREAD_ONCE_INIT;
47 #endif
48
49 static FilePrintStream* file;
50
51 static void initializeLogFileOnce() {
52 #if DATA_LOG_TO_FILE
53 #ifdef DATA_LOG_FILENAME
54 const char* filename = DATA_LOG_FILENAME;
55 #else
56 const char* filename = getenv("WTF_DATA_LOG_FILENAME");
57 #endif
58 char actualFilename[1024];
59
60 snprintf(actualFilename, sizeof(actualFilename), "%s.%d.txt", filename,
61 getpid());
62
63 if (filename) {
64 file = FilePrintStream::open(actualFilename, "w").release();
65 if (!file)
66 fprintf(stderr, "Warning: Could not open log file %s for writing.\n",
67 actualFilename);
68 }
69 #endif // DATA_LOG_TO_FILE
70 if (!file)
71 file = new FilePrintStream(stderr, FilePrintStream::Borrow);
72
73 // Prefer unbuffered output, so that we get a full log upon crash or
74 // deadlock.
75 setvbuf(file->file(), 0, _IONBF, 0);
76 }
77
78 static void initializeLogFile() {
79 #if OS(POSIX)
80 pthread_once(&initializeLogFileOnceKey, initializeLogFileOnce);
81 #else
82 if (!file)
83 initializeLogFileOnce();
84 #endif
85 }
86
87 FilePrintStream& dataFile() {
88 initializeLogFile();
89 return *file;
90 }
91
92 void dataLogFV(const char* format, va_list argList) {
93 dataFile().vprintf(format, argList);
94 }
95
96 void dataLogF(const char* format, ...) {
97 va_list argList;
98 va_start(argList, format);
99 dataLogFV(format, argList);
100 va_end(argList);
101 }
102
103 } // namespace WTF
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/wtf/DataLog.h ('k') | third_party/WebKit/Source/wtf/Deque.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698