#include "src/logging/log-file.h"
#include <atomic>
#include <memory>
#include <optional>
#include "src/base/platform/mutex.h"
#include "src/base/platform/platform.h"
#include "src/base/strings.h"
#include "src/base/vector.h"
#include "src/common/assert-scope.h"
#include "src/common/globals.h"
#include "src/execution/isolate-utils.h"
#include "src/logging/log.h"
#include "src/objects/objects-inl.h"
#include "src/objects/string-inl.h"
#include "src/objects/tagged.h"
#include "src/strings/string-stream.h"
#include "src/utils/version.h"
namespace v8 {
namespace internal {
const char* const LogFile::kLogToTemporaryFile = …;
const char* const LogFile::kLogToConsole = …;
FILE* LogFile::CreateOutputHandle(std::string file_name) { … }
bool LogFile::IsLoggingToConsole(std::string file_name) { … }
bool LogFile::IsLoggingToTemporaryFile(std::string file_name) { … }
LogFile::LogFile(V8FileLogger* logger, std::string file_name)
: … { … }
void LogFile::WriteLogHeader() { … }
std::unique_ptr<LogFile::MessageBuilder> LogFile::NewMessageBuilder() { … }
FILE* LogFile::Close() { … }
std::string LogFile::file_name() const { … }
LogFile::MessageBuilder::MessageBuilder(LogFile* log)
: … { … }
void LogFile::MessageBuilder::AppendString(Tagged<String> str,
std::optional<int> length_limit) { … }
void LogFile::MessageBuilder::AppendString(base::Vector<const char> str) { … }
void LogFile::MessageBuilder::AppendString(const char* str) { … }
void LogFile::MessageBuilder::AppendString(const char* str, size_t length,
bool is_one_byte) { … }
void LogFile::MessageBuilder::AppendFormatString(const char* format, ...) { … }
void LogFile::MessageBuilder::AppendTwoByteCharacter(char c1, char c2) { … }
void LogFile::MessageBuilder::AppendCharacter(char c) { … }
void LogFile::MessageBuilder::AppendSymbolName(Tagged<Symbol> symbol) { … }
void LogFile::MessageBuilder::AppendSymbolNameDetails(Tagged<String> str,
bool show_impl_info) { … }
int LogFile::MessageBuilder::FormatStringIntoBuffer(const char* format,
va_list args) { … }
void LogFile::MessageBuilder::AppendRawFormatString(const char* format, ...) { … }
void LogFile::MessageBuilder::AppendRawString(const char* str) { … }
void LogFile::MessageBuilder::AppendRawCharacter(char c) { … }
void LogFile::MessageBuilder::WriteToLogFile() { … }
template <>
LogFile::MessageBuilder& LogFile::MessageBuilder::operator<<<const char*>(
const char* string) { … }
template <>
LogFile::MessageBuilder& LogFile::MessageBuilder::operator<<<void*>(
void* pointer) { … }
template <>
LogFile::MessageBuilder& LogFile::MessageBuilder::operator<<<char>(char c) { … }
template <>
LogFile::MessageBuilder& LogFile::MessageBuilder::operator<< <Tagged<String>>(
Tagged<String> string) { … }
template <>
LogFile::MessageBuilder& LogFile::MessageBuilder::operator<< <Tagged<Symbol>>(
Tagged<Symbol> symbol) { … }
template <>
LogFile::MessageBuilder& LogFile::MessageBuilder::operator<< <Tagged<Name>>(
Tagged<Name> name) { … }
template <>
LogFile::MessageBuilder& LogFile::MessageBuilder::operator<<<LogSeparator>(
LogSeparator separator) { … }
}
}