-static void free_(xbt_log_appender_t this_) {
- if (this_->data != stderr)
- fclose(static_cast<FILE*>(this_->data));
+static void free_(xbt_log_appender_t this_)
+{
+ fclose(static_cast<FILE*>(this_->data));
+}
+
+xbt_log_appender_t xbt_log_appender_stream(FILE* f)
+{
+ xbt_log_appender_t res = xbt_new0(s_xbt_log_appender_t, 1);
+ res->do_append = &append_file;
+ res->free_ = nullptr;
+ res->data = static_cast<void*>(f);
+ return res;