// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef NET_LOG_FILE_NET_LOG_OBSERVER_H_ #define NET_LOG_FILE_NET_LOG_OBSERVER_H_ #include <limits> #include <memory> #include <optional> #include "base/files/file.h" #include "base/functional/callback.h" #include "base/memory/scoped_refptr.h" #include "base/values.h" #include "net/base/net_export.h" #include "net/log/net_log.h" namespace base { class FilePath; class SequencedTaskRunner; } // namespace base namespace net { // FileNetLogObserver watches the NetLog event stream and sends all entries to // a file. // // Consumers must call StartObserving before calling StopObserving, and must // call each method exactly once in the lifetime of the observer. // // The log will not be completely written until StopObserving is called. // // When a file size limit is given, FileNetLogObserver will create temporary // directory containing chunks of events. This is used to drop older events in // favor of newer ones. class NET_EXPORT FileNetLogObserver : public NetLog::ThreadSafeObserver { … }; // Serializes |value| to a JSON string used when writing to a file. NET_EXPORT_PRIVATE std::string SerializeNetLogValueToJson( const base::ValueView& value); } // namespace net #endif // NET_LOG_FILE_NET_LOG_OBSERVER_H_