|
quill
|
Keep the Windows-specific FileSink split isolated under _WIN32. More...
#include <FileSink.h>


Public Member Functions | |
| FileSink (fs::path const &filename, FileSinkConfig const &config=FileSinkConfig{}, FileEventNotifier file_event_notifier=FileEventNotifier{}, bool do_fopen=true, std::chrono::system_clock::time_point start_time=std::chrono::system_clock::now()) | |
| QUILL_ATTRIBUTE_HOT void | flush_sink () override |
| Flushes the sink, synchronizing the associated sink with its controlled output sequence. | |
Public Member Functions inherited from StreamSink | |
| StreamSink (fs::path stream, FILE *file=nullptr, std::optional< PatternFormatterOptions > const &override_pattern_formatter_options=std::nullopt, FileEventNotifier file_event_notifier=FileEventNotifier{}) | |
| Constructor for StreamSink. More... | |
| QUILL_ATTRIBUTE_HOT void | write_log (MacroMetadata const *, uint64_t, std::string_view, std::string_view, std::string const &, std::string_view, LogLevel, std::string_view, std::string_view, std::vector< std::pair< std::string, std::string >> const *, std::string_view, std::string_view log_statement) override |
| Writes a formatted log message to the stream. | |
| QUILL_ATTRIBUTE_HOT void | flush_sink () override |
| Flushes the stream. | |
| virtual QUILL_NODISCARD fs::path const & | get_filename () const noexcept |
| Returns the name of the file. More... | |
| QUILL_NODISCARD bool | is_null () const noexcept |
| Checks if the stream is null. More... | |
Public Member Functions inherited from Sink | |
| Sink (std::optional< PatternFormatterOptions > override_pattern_formatter_options=std::nullopt) | |
| Constructor Uses the default pattern formatter. | |
| virtual | ~Sink ()=default |
| Destructor. | |
| Sink (Sink const &)=delete | |
| Sink & | operator= (Sink const &)=delete |
| void | set_log_level_filter (LogLevel log_level) |
| Sets a log level filter on the sink. More... | |
| QUILL_NODISCARD LogLevel | get_log_level_filter () const noexcept |
| Returns the current log level filter set on the sink. More... | |
| void | add_filter (std::unique_ptr< Filter > filter) |
| Adds a new filter to the sink. More... | |
Protected Member Functions | |
| void | open_file (fs::path const &filename, std::string const &mode) |
| void | close_file () |
| void | _close_file_noexcept () noexcept |
| void | fsync_file (bool force_fsync=false) |
| QUILL_NODISCARD bool | is_open () const noexcept |
Protected Member Functions inherited from StreamSink | |
| virtual QUILL_NODISCARD size_t | estimate_write_size (MacroMetadata const *, uint64_t, std::string_view, std::string_view, std::string const &, std::string_view, LogLevel, std::string_view, std::string_view, std::vector< std::pair< std::string, std::string >> const *, std::string_view, std::string_view log_statement) |
| QUILL_ATTRIBUTE_HOT void | flush () |
| Flushes the stream. | |
Protected Member Functions inherited from Sink | |
| virtual QUILL_ATTRIBUTE_HOT void | write_metric (MetricMetadata const *, uint64_t, std::string_view, std::string_view, std::string const &, std::string_view, double) |
| Publishes a metric sample to the sink. More... | |
| virtual QUILL_ATTRIBUTE_HOT void | run_periodic_tasks () noexcept |
| Executes periodic tasks by the backend thread, providing an opportunity for the user to perform custom tasks. More... | |
| QUILL_NODISCARD bool | apply_all_filters (MacroMetadata const *log_metadata, uint64_t log_timestamp, std::string_view thread_id, std::string_view thread_name, std::string_view logger_name, LogLevel log_level, std::string_view log_message, std::string_view log_statement) |
| Applies all registered filters to the log record. More... | |
Protected Attributes | |
| FileSinkConfig | _config |
| std::chrono::steady_clock::time_point | _last_fsync_timestamp {} |
| std::unique_ptr< char[]> | _write_buffer |
Protected Attributes inherited from StreamSink | |
| fs::path | _filename |
| FILE * | _file {nullptr} |
| size_t | _file_size {0} |
| The current file size. | |
| FileEventNotifier | _file_event_notifier |
| bool | _is_null {false} |
| bool | _write_occurred {false} |
Additional Inherited Members | |
Static Public Member Functions inherited from StreamSink | |
| static QUILL_ATTRIBUTE_HOT void | safe_fwrite (void const *ptr, size_t size, size_t count, FILE *stream) |
| Writes data safely to the stream. More... | |
Keep the Windows-specific FileSink split isolated under _WIN32.
A previous attempt to share a FileSinkBase across all platforms introduced a measurable Linux throughput regression in BENCHMARK_quill_backend_throughput despite equivalent logic. If this is revisited, revalidate Linux performance. FileSink Writes the log messages to a file
1.8.13