Lines Matching +full:log +full:-
2 // Use of this source code is governed by a BSD-style license that can be
5 #include "src/log-utils.h"
7 #include "src/assert-scope.h"
9 #include "src/objects-inl.h"
10 #include "src/string-stream.h"
19 const char* const Log::kLogToTemporaryFile = "&";
20 const char* const Log::kLogToConsole = "-";
23 FILE* Log::CreateOutputHandle(const char* file_name) { in CreateOutputHandle()
24 // If we're logging anything, we need to open the log file. in CreateOutputHandle()
25 if (!Log::InitLogAtStart()) { in CreateOutputHandle()
36 Log::Log(Logger* logger, const char* file_name) in Log() function in v8::internal::Log
38 output_handle_(Log::CreateOutputHandle(file_name)), in Log()
42 // --log-all enables all the log flags. in Log()
52 // --prof implies --log-code. in Log()
56 Log::MessageBuilder msg(this); in Log()
58 msg << "v8-version" << kNext << Version::GetMajor() << kNext in Log()
68 FILE* Log::Close() { in Close()
86 Log::MessageBuilder::MessageBuilder(Log* log) in MessageBuilder() argument
87 : log_(log), lock_guard_(&log_->mutex_) { in MessageBuilder()
88 DCHECK_NOT_NULL(log_->format_buffer_); in MessageBuilder()
91 void Log::MessageBuilder::AppendString(String* str, in AppendString()
96 int length = str->length(); in AppendString()
99 uint16_t c = str->Get(i); in AppendString()
103 // Escape non-ascii characters. in AppendString()
109 void Log::MessageBuilder::AppendString(Vector<const char> str) { in AppendString()
113 void Log::MessageBuilder::AppendString(const char* str) { in AppendString()
118 void Log::MessageBuilder::AppendString(const char* str, size_t length) { in AppendString()
127 void Log::MessageBuilder::AppendFormatString(const char* format, ...) { in AppendFormatString()
133 DCHECK_NE(log_->format_buffer_[i], '\0'); in AppendFormatString()
134 AppendCharacter(log_->format_buffer_[i]); in AppendFormatString()
138 void Log::MessageBuilder::AppendCharacter(char c) { in AppendCharacter()
153 // Escape non-printable characters. in AppendCharacter()
158 void Log::MessageBuilder::AppendSymbolName(Symbol* symbol) { in AppendSymbolName()
160 OFStream& os = log_->os_; in AppendSymbolName()
162 if (!symbol->name()->IsUndefined()) { in AppendSymbolName()
164 AppendSymbolNameDetails(String::cast(symbol->name()), false); in AppendSymbolName()
167 os << "hash " << std::hex << symbol->Hash() << std::dec << ")"; in AppendSymbolName()
170 void Log::MessageBuilder::AppendSymbolNameDetails(String* str, in AppendSymbolNameDetails()
175 OFStream& os = log_->os_; in AppendSymbolNameDetails()
176 int limit = str->length(); in AppendSymbolNameDetails()
179 os << (str->IsOneByteRepresentation() ? 'a' : '2'); in AppendSymbolNameDetails()
182 os << ':' << str->length() << ':'; in AppendSymbolNameDetails()
187 int Log::MessageBuilder::FormatStringIntoBuffer(const char* format, in FormatStringIntoBuffer()
189 Vector<char> buf(log_->format_buffer_, Log::kMessageBufferSize); in FormatStringIntoBuffer()
191 // |length| is -1 if output was truncated. in FormatStringIntoBuffer()
192 if (length == -1) length = Log::kMessageBufferSize; in FormatStringIntoBuffer()
193 DCHECK_LE(length, Log::kMessageBufferSize); in FormatStringIntoBuffer()
198 void Log::MessageBuilder::AppendRawFormatString(const char* format, ...) { in AppendRawFormatString()
204 DCHECK_NE(log_->format_buffer_[i], '\0'); in AppendRawFormatString()
205 AppendRawCharacter(log_->format_buffer_[i]); in AppendRawFormatString()
209 void Log::MessageBuilder::AppendRawCharacter(char c) { log_->os_ << c; } in AppendRawCharacter()
211 void Log::MessageBuilder::WriteToLogFile() { log_->os_ << std::endl; } in WriteToLogFile()
214 Log::MessageBuilder& Log::MessageBuilder::operator<<<const char*>(
216 this->AppendString(string);
221 Log::MessageBuilder& Log::MessageBuilder::operator<<<void*>(void* pointer) {
222 OFStream& os = log_->os_;
230 Log::MessageBuilder& Log::MessageBuilder::operator<<<char>(char c) {
231 this->AppendCharacter(c);
236 Log::MessageBuilder& Log::MessageBuilder::operator<<<String*>(String* string) {
237 this->AppendString(string);
242 Log::MessageBuilder& Log::MessageBuilder::operator<<<Symbol*>(Symbol* symbol) {
243 this->AppendSymbolName(symbol);
248 Log::MessageBuilder& Log::MessageBuilder::operator<<<Name*>(Name* name) {
249 if (name->IsString()) {
250 this->AppendString(String::cast(name));
252 this->AppendSymbolName(Symbol::cast(name));
258 Log::MessageBuilder& Log::MessageBuilder::operator<<<LogSeparator>(
261 this->AppendRawCharacter(',');