Lines Matching refs:stream

265 		struct zlog_stream *stream, int flags, size_t capacity, int fd);
270 struct zlog_stream stream; in zlog_msg_ex() local
274 zlog_stream_init_internal(&stream, flags, msg_len + prefix_len, 0); in zlog_msg_ex()
275 zlog_stream_prefix_ex(&stream, function, line); in zlog_msg_ex()
276 zlog_stream_str(&stream, prefix, prefix_len); in zlog_msg_ex()
277 zlog_stream_str(&stream, msg, msg_len); in zlog_msg_ex()
278 zlog_stream_finish(&stream); in zlog_msg_ex()
279 zlog_stream_destroy(&stream); in zlog_msg_ex()
285 static zlog_bool zlog_stream_buf_alloc_ex(struct zlog_stream *stream, size_t needed) /* {{{ */ in zlog_stream_buf_alloc_ex() argument
288 size_t size = stream->buf.size ?: stream->buf_init_size; in zlog_stream_buf_alloc_ex()
290 if (stream->buf.data) { in zlog_stream_buf_alloc_ex()
292 buf = realloc(stream->buf.data, size); in zlog_stream_buf_alloc_ex()
302 stream->buf.data = buf; in zlog_stream_buf_alloc_ex()
303 stream->buf.size = size; in zlog_stream_buf_alloc_ex()
309 inline static zlog_bool zlog_stream_buf_alloc(struct zlog_stream *stream) /* {{{ */ in zlog_stream_buf_alloc() argument
312 if (stream->buf.data && stream->buf.size >= MIN(zlog_limit, stream->buf_init_size)) { in zlog_stream_buf_alloc()
315 return zlog_stream_buf_alloc_ex(stream, 0); in zlog_stream_buf_alloc()
320 struct zlog_stream *stream, const char *buf, size_t len, in zlog_stream_direct_write_ex() argument
323 if (stream->use_fd) { in zlog_stream_direct_write_ex()
324 zend_quiet_write(stream->fd, buf, len); in zlog_stream_direct_write_ex()
326 zend_quiet_write(stream->fd, append, append_len); in zlog_stream_direct_write_ex()
330 if (stream->use_stderr) { in zlog_stream_direct_write_ex()
342 struct zlog_stream *stream, const char *buf, size_t len) /* {{{ */ in zlog_stream_direct_write() argument
344 return zlog_stream_direct_write_ex(stream, buf, len, NULL, 0); in zlog_stream_direct_write()
349 struct zlog_stream *stream, const char *buf, size_t len) /* {{{ */ in zlog_stream_unbuffered_write() argument
355 if (stream->len == 0) { in zlog_stream_unbuffered_write()
356 stream->len = zlog_stream_prefix_ex(stream, stream->function, stream->line); in zlog_stream_unbuffered_write()
360 reserved_len = stream->len + stream->msg_suffix_len + stream->msg_quote; in zlog_stream_unbuffered_write()
363 if (stream->wrap) { in zlog_stream_unbuffered_write()
373 zlog_stream_direct_write(stream, buf, available_len); in zlog_stream_unbuffered_write()
375 if (stream->msg_quote) { in zlog_stream_unbuffered_write()
376 zlog_stream_direct_write(stream, "\"", 1); in zlog_stream_unbuffered_write()
378 if (stream->msg_suffix) { in zlog_stream_unbuffered_write()
379 zlog_stream_direct_write(stream, stream->msg_suffix, stream->msg_suffix_len); in zlog_stream_unbuffered_write()
381 zlog_stream_direct_write(stream, append, append_len); in zlog_stream_unbuffered_write()
383 stream->len = 0; in zlog_stream_unbuffered_write()
385 stream, buf + available_len, len - available_len); in zlog_stream_unbuffered_write()
393 stream->full = 1; in zlog_stream_unbuffered_write()
399 len = zlog_limit - stream->len - append_len; in zlog_stream_unbuffered_write()
403 written = zlog_stream_direct_write_ex(stream, buf, len, append, append_len); in zlog_stream_unbuffered_write()
407 stream->len += written; in zlog_stream_unbuffered_write()
415 struct zlog_stream *stream, const char *str, size_t str_len) /* {{{ */ in zlog_stream_buf_copy_cstr() argument
417 if (stream->buf.size - stream->len <= str_len && in zlog_stream_buf_copy_cstr()
418 !zlog_stream_buf_alloc_ex(stream, str_len + stream->len)) { in zlog_stream_buf_copy_cstr()
422 memcpy(stream->buf.data + stream->len, str, str_len); in zlog_stream_buf_copy_cstr()
423 stream->len += str_len; in zlog_stream_buf_copy_cstr()
429 static inline ssize_t zlog_stream_buf_copy_char(struct zlog_stream *stream, char c) /* {{{ */ in zlog_stream_buf_copy_char() argument
431 if (stream->buf.size - stream->len < 1 && !zlog_stream_buf_alloc_ex(stream, 1)) { in zlog_stream_buf_copy_char()
435 stream->buf.data[stream->len++] = c; in zlog_stream_buf_copy_char()
441 static ssize_t zlog_stream_buf_flush(struct zlog_stream *stream) /* {{{ */ in zlog_stream_buf_flush() argument
446 if (stream->use_syslog) { in zlog_stream_buf_flush()
447 zlog_stream_buf_copy_char(stream, '\0'); in zlog_stream_buf_flush()
448 php_syslog(syslog_priorities[zlog_level], "%s", stream->buf.data); in zlog_stream_buf_flush()
449 --stream->len; in zlog_stream_buf_flush()
454 external_logger(stream->flags & ZLOG_LEVEL_MASK, in zlog_stream_buf_flush()
455 stream->buf.data + stream->prefix_len, stream->len - stream->prefix_len); in zlog_stream_buf_flush()
457 zlog_stream_buf_copy_char(stream, '\n'); in zlog_stream_buf_flush()
458 written = zlog_stream_direct_write(stream, stream->buf.data, stream->len); in zlog_stream_buf_flush()
459 stream->len = 0; in zlog_stream_buf_flush()
466 struct zlog_stream *stream, const char *str, size_t str_len) /* {{{ */ in zlog_stream_buf_append() argument
471 if (stream->len == 0) { in zlog_stream_buf_append()
472 stream->len = zlog_stream_prefix_ex(stream, stream->function, stream->line); in zlog_stream_buf_append()
476 reserved_len = stream->len + stream->msg_suffix_len + stream->msg_quote; in zlog_stream_buf_append()
485 if (zlog_stream_buf_copy_cstr(stream, str, available_len) < 0) { in zlog_stream_buf_append()
493 if (stream->wrap) { in zlog_stream_buf_append()
494 if (stream->msg_quote) { in zlog_stream_buf_append()
495 zlog_stream_buf_copy_char(stream, '"'); in zlog_stream_buf_append()
497 if (stream->msg_suffix != NULL) { in zlog_stream_buf_append()
498 zlog_stream_buf_copy_cstr(stream, stream->msg_suffix, stream->msg_suffix_len); in zlog_stream_buf_append()
500 zlog_stream_buf_flush(stream); in zlog_stream_buf_append()
501 zlog_stream_prefix_ex(stream, stream->function, stream->line); in zlog_stream_buf_append()
503 stream, str + available_len, str_len - available_len); in zlog_stream_buf_append()
506 stream->len = zlog_truncate_buf(stream->buf.data, stream->len, 0); in zlog_stream_buf_append()
507 stream->full = 1; in zlog_stream_buf_append()
513 struct zlog_stream *stream, int flags, size_t capacity, int fd) /* {{{ */ in zlog_stream_init_internal() argument
519 memset(stream, 0, sizeof(struct zlog_stream)); in zlog_stream_init_internal()
520 stream->flags = flags; in zlog_stream_init_internal()
521 stream->use_syslog = fd == ZLOG_SYSLOG; in zlog_stream_init_internal()
522 stream->use_fd = fd > 0; in zlog_stream_init_internal()
523 stream->use_buffer = zlog_buffering || external_logger != NULL || stream->use_syslog; in zlog_stream_init_internal()
524 stream->buf_init_size = capacity; in zlog_stream_init_internal()
525 stream->use_stderr = fd < 0 || in zlog_stream_init_internal()
530 stream->prefix_buffer = (flags & ZLOG_LEVEL_MASK) >= zlog_level && in zlog_stream_init_internal()
531 (stream->use_fd || stream->use_stderr || stream->use_syslog); in zlog_stream_init_internal()
532 stream->fd = fd > -1 ? fd : STDERR_FILENO; in zlog_stream_init_internal()
536 void zlog_stream_init(struct zlog_stream *stream, int flags) /* {{{ */ in zlog_stream_init() argument
538 zlog_stream_init_internal(stream, flags, 1024, 0); in zlog_stream_init()
542 void zlog_stream_init_ex(struct zlog_stream *stream, int flags, int fd) /* {{{ */ in zlog_stream_init_ex() argument
544 zlog_stream_init_internal(stream, flags, 1024, fd); in zlog_stream_init_ex()
545 stream->wrap = 1; in zlog_stream_init_ex()
549 void zlog_stream_set_decorating(struct zlog_stream *stream, zlog_bool decorate) /* {{{ */ in zlog_stream_set_decorating() argument
552 stream->decorate = 1; in zlog_stream_set_decorating()
554 stream->decorate = 0; in zlog_stream_set_decorating()
555 stream->msg_quote = 0; in zlog_stream_set_decorating()
556 stream->prefix_buffer = 0; in zlog_stream_set_decorating()
561 void zlog_stream_set_wrapping(struct zlog_stream *stream, zlog_bool wrap) /* {{{ */ in zlog_stream_set_wrapping() argument
563 stream->wrap = wrap ? 1 : 0; in zlog_stream_set_wrapping()
567 void zlog_stream_set_is_stdout(struct zlog_stream *stream, zlog_bool is_stdout) /* {{{ */ in zlog_stream_set_is_stdout() argument
569 stream->is_stdout = is_stdout ? 1 : 0; in zlog_stream_set_is_stdout()
573 void zlog_stream_set_child_pid(struct zlog_stream *stream, int child_pid) /* {{{ */ in zlog_stream_set_child_pid() argument
575 stream->child_pid = child_pid; in zlog_stream_set_child_pid()
579 void zlog_stream_set_msg_quoting(struct zlog_stream *stream, zlog_bool quote) /* {{{ */ in zlog_stream_set_msg_quoting() argument
581 stream->msg_quote = quote && stream->decorate ? 1 : 0; in zlog_stream_set_msg_quoting()
585 zlog_bool zlog_stream_set_msg_prefix(struct zlog_stream *stream, const char *fmt, ...) /* {{{ */ in zlog_stream_set_msg_prefix() argument
591 if (!stream->decorate) { in zlog_stream_set_msg_prefix()
599 if (stream->msg_prefix_len < len) { in zlog_stream_set_msg_prefix()
600stream->msg_prefix = stream->msg_prefix_len ? realloc(stream->msg_prefix, len + 1) : malloc(len + … in zlog_stream_set_msg_prefix()
601 if (stream->msg_prefix == NULL) { in zlog_stream_set_msg_prefix()
605 memcpy(stream->msg_prefix, buf, len); in zlog_stream_set_msg_prefix()
606 stream->msg_prefix[len] = 0; in zlog_stream_set_msg_prefix()
607 stream->msg_prefix_len = len; in zlog_stream_set_msg_prefix()
614 struct zlog_stream *stream, const char *suffix, const char *final_suffix) /* {{{ */ in zlog_stream_set_msg_suffix() argument
617 if (!stream->wrap || !stream->decorate) { in zlog_stream_set_msg_suffix()
622 stream->msg_suffix_len = strlen(suffix); in zlog_stream_set_msg_suffix()
623 stream->msg_final_suffix_len = strlen(final_suffix); in zlog_stream_set_msg_suffix()
624 len = stream->msg_suffix_len + stream->msg_final_suffix_len + 2; in zlog_stream_set_msg_suffix()
625 if (stream->msg_suffix != NULL) { in zlog_stream_set_msg_suffix()
626 free(stream->msg_suffix); in zlog_stream_set_msg_suffix()
628 stream->msg_suffix = malloc(len); in zlog_stream_set_msg_suffix()
629 if (stream->msg_suffix == NULL) { in zlog_stream_set_msg_suffix()
632 stream->msg_final_suffix = stream->msg_suffix + stream->msg_suffix_len + 1; in zlog_stream_set_msg_suffix()
633 memcpy(stream->msg_suffix, suffix, stream->msg_suffix_len + 1); in zlog_stream_set_msg_suffix()
634 memcpy(stream->msg_final_suffix, final_suffix, stream->msg_final_suffix_len + 1); in zlog_stream_set_msg_suffix()
638 stream->msg_suffix_len = strlen(suffix); in zlog_stream_set_msg_suffix()
639 len = stream->msg_suffix_len + 1; in zlog_stream_set_msg_suffix()
640 stream->msg_suffix = malloc(len); in zlog_stream_set_msg_suffix()
641 if (stream->msg_suffix != NULL) { in zlog_stream_set_msg_suffix()
642 free(stream->msg_suffix); in zlog_stream_set_msg_suffix()
644 if (stream->msg_suffix == NULL) { in zlog_stream_set_msg_suffix()
647 memcpy(stream->msg_suffix, suffix, len); in zlog_stream_set_msg_suffix()
651 stream->msg_final_suffix_len = strlen(final_suffix); in zlog_stream_set_msg_suffix()
652 len = stream->msg_final_suffix_len + 1; in zlog_stream_set_msg_suffix()
653 stream->msg_final_suffix = malloc(len); in zlog_stream_set_msg_suffix()
654 if (stream->msg_final_suffix != NULL) { in zlog_stream_set_msg_suffix()
655 free(stream->msg_suffix); in zlog_stream_set_msg_suffix()
657 if (stream->msg_final_suffix == NULL) { in zlog_stream_set_msg_suffix()
660 memcpy(stream->msg_final_suffix, final_suffix, len); in zlog_stream_set_msg_suffix()
668 ssize_t zlog_stream_prefix_ex(struct zlog_stream *stream, const char *function, int line) /* {{{ */ in zlog_stream_prefix_ex() argument
672 if (!stream->prefix_buffer) { in zlog_stream_prefix_ex()
675 if (stream->wrap && stream->function == NULL) { in zlog_stream_prefix_ex()
676 stream->function = function; in zlog_stream_prefix_ex()
677 stream->line = line; in zlog_stream_prefix_ex()
680 if (stream->use_buffer) { in zlog_stream_prefix_ex()
681 if (!zlog_stream_buf_alloc(stream)) { in zlog_stream_prefix_ex()
685 function, line, stream->flags, in zlog_stream_prefix_ex()
686 stream->buf.data, stream->buf.size, stream->use_syslog); in zlog_stream_prefix_ex()
687 stream->len = stream->prefix_len = len; in zlog_stream_prefix_ex()
688 if (stream->msg_prefix != NULL) { in zlog_stream_prefix_ex()
689 zlog_stream_buf_copy_cstr(stream, stream->msg_prefix, stream->msg_prefix_len); in zlog_stream_prefix_ex()
691 if (stream->msg_quote) { in zlog_stream_prefix_ex()
692 zlog_stream_buf_copy_char(stream, '"'); in zlog_stream_prefix_ex()
694 return stream->len; in zlog_stream_prefix_ex()
698 len = zlog_buf_prefix(function, line, stream->flags, sbuf, 1024, stream->use_syslog); in zlog_stream_prefix_ex()
699 written = zlog_stream_direct_write(stream, sbuf, len); in zlog_stream_prefix_ex()
700 if (stream->msg_prefix != NULL) { in zlog_stream_prefix_ex()
702 stream, stream->msg_prefix, stream->msg_prefix_len); in zlog_stream_prefix_ex()
704 if (stream->msg_quote) { in zlog_stream_prefix_ex()
705 written += zlog_stream_direct_write(stream, "\"", 1); in zlog_stream_prefix_ex()
712 ssize_t zlog_stream_vformat(struct zlog_stream *stream, const char *fmt, va_list args) /* {{{ */ in zlog_stream_vformat() argument
719 return zlog_stream_str(stream, sbuf, len); in zlog_stream_vformat()
723 ssize_t zlog_stream_format(struct zlog_stream *stream, const char *fmt, ...) /* {{{ */ in zlog_stream_format() argument
729 len = zlog_stream_vformat(stream, fmt, args); in zlog_stream_format()
736 ssize_t zlog_stream_str(struct zlog_stream *stream, const char *str, size_t str_len) /* {{{ */ in zlog_stream_str() argument
739 if (str_len == 0 || stream->full) { in zlog_stream_str()
744 if (stream->finished) { in zlog_stream_str()
745 stream->finished = 0; in zlog_stream_str()
746 stream->len = 0; in zlog_stream_str()
747 stream->full = 0; in zlog_stream_str()
750 if (stream->use_buffer) { in zlog_stream_str()
751 return zlog_stream_buf_append(stream, str, str_len); in zlog_stream_str()
754 return zlog_stream_unbuffered_write(stream, str, str_len); in zlog_stream_str()
758 static inline void zlog_stream_finish_buffer_suffix(struct zlog_stream *stream) /* {{{ */ in zlog_stream_finish_buffer_suffix() argument
760 if (stream->msg_quote) { in zlog_stream_finish_buffer_suffix()
761 zlog_stream_buf_copy_char(stream, '"'); in zlog_stream_finish_buffer_suffix()
763 if (stream->msg_suffix != NULL) { in zlog_stream_finish_buffer_suffix()
764 zlog_stream_buf_copy_cstr(stream, stream->msg_suffix, stream->msg_suffix_len); in zlog_stream_finish_buffer_suffix()
766 if (stream->msg_final_suffix != NULL) { in zlog_stream_finish_buffer_suffix()
767 if (stream->len + stream->msg_final_suffix_len >= zlog_limit) { in zlog_stream_finish_buffer_suffix()
768 zlog_bool quoting = stream->msg_quote; in zlog_stream_finish_buffer_suffix()
769 size_t final_suffix_wrap = stream->len + stream->msg_final_suffix_len + 1 - zlog_limit; in zlog_stream_finish_buffer_suffix()
771 stream, stream->msg_final_suffix, in zlog_stream_finish_buffer_suffix()
772 stream->msg_final_suffix_len - final_suffix_wrap); in zlog_stream_finish_buffer_suffix()
773 zlog_stream_buf_copy_char(stream, '\n'); in zlog_stream_finish_buffer_suffix()
774 zlog_stream_buf_flush(stream); in zlog_stream_finish_buffer_suffix()
775 stream->msg_quote = 0; in zlog_stream_finish_buffer_suffix()
776 zlog_stream_prefix_ex(stream, stream->function, stream->line); in zlog_stream_finish_buffer_suffix()
777 stream->msg_quote = quoting; in zlog_stream_finish_buffer_suffix()
779 stream, in zlog_stream_finish_buffer_suffix()
780 stream->msg_final_suffix + (stream->msg_final_suffix_len - final_suffix_wrap), in zlog_stream_finish_buffer_suffix()
782 zlog_stream_buf_copy_char(stream, '\n'); in zlog_stream_finish_buffer_suffix()
785 stream, stream->msg_final_suffix, stream->msg_final_suffix_len); in zlog_stream_finish_buffer_suffix()
791 static inline void zlog_stream_finish_direct_suffix(struct zlog_stream *stream) /* {{{ */ in zlog_stream_finish_direct_suffix() argument
793 if (stream->msg_quote) { in zlog_stream_finish_direct_suffix()
794 zlog_stream_direct_write(stream, "\"", 1); in zlog_stream_finish_direct_suffix()
795 ++stream->len; in zlog_stream_finish_direct_suffix()
797 if (stream->msg_suffix != NULL) { in zlog_stream_finish_direct_suffix()
799 zlog_stream_direct_write(stream, stream->msg_suffix, stream->msg_suffix_len); in zlog_stream_finish_direct_suffix()
800 stream->len += stream->msg_suffix_len; in zlog_stream_finish_direct_suffix()
802 if (stream->msg_final_suffix != NULL) { in zlog_stream_finish_direct_suffix()
803 if (stream->len + stream->msg_final_suffix_len >= zlog_limit) { in zlog_stream_finish_direct_suffix()
804 zlog_bool quoting = stream->msg_quote; in zlog_stream_finish_direct_suffix()
805 size_t final_suffix_wrap = stream->len + stream->msg_final_suffix_len + 1 - zlog_limit; in zlog_stream_finish_direct_suffix()
807 stream, stream->msg_final_suffix, in zlog_stream_finish_direct_suffix()
808 stream->msg_final_suffix_len - final_suffix_wrap, "\n", 1); in zlog_stream_finish_direct_suffix()
809 stream->msg_quote = 0; in zlog_stream_finish_direct_suffix()
810 zlog_stream_prefix_ex(stream, stream->function, stream->line); in zlog_stream_finish_direct_suffix()
811 stream->msg_quote = quoting; in zlog_stream_finish_direct_suffix()
813 stream, in zlog_stream_finish_direct_suffix()
814 stream->msg_final_suffix + (stream->msg_final_suffix_len - final_suffix_wrap), in zlog_stream_finish_direct_suffix()
818 stream, stream->msg_final_suffix, stream->msg_final_suffix_len, "\n", 1); in zlog_stream_finish_direct_suffix()
821 zlog_stream_direct_write(stream, "\n", 1); in zlog_stream_finish_direct_suffix()
826 zlog_bool zlog_stream_finish(struct zlog_stream *stream) /* {{{ */ in zlog_stream_finish() argument
828 if (stream->finished || stream->len == 0) { in zlog_stream_finish()
832 if (stream->use_buffer) { in zlog_stream_finish()
833 if (stream->decorate) { in zlog_stream_finish()
834 zlog_stream_finish_buffer_suffix(stream); in zlog_stream_finish()
836 zlog_stream_buf_flush(stream); in zlog_stream_finish()
838 if (stream->decorate) { in zlog_stream_finish()
839 zlog_stream_finish_direct_suffix(stream); in zlog_stream_finish()
841 zlog_stream_direct_write(stream, "\n", 1); in zlog_stream_finish()
844 stream->finished = 1; in zlog_stream_finish()
850 void zlog_stream_destroy(struct zlog_stream *stream) /* {{{ */ in zlog_stream_destroy() argument
852 if (stream->buf.data != NULL) { in zlog_stream_destroy()
853 free(stream->buf.data); in zlog_stream_destroy()
855 if (stream->msg_prefix != NULL) { in zlog_stream_destroy()
856 free(stream->msg_prefix); in zlog_stream_destroy()
858 if (stream->msg_suffix != NULL) { in zlog_stream_destroy()
859 free(stream->msg_suffix); in zlog_stream_destroy()
860 } else if (stream->msg_final_suffix != NULL) { in zlog_stream_destroy()
861 free(stream->msg_final_suffix); in zlog_stream_destroy()
866 zlog_bool zlog_stream_close(struct zlog_stream *stream) /* {{{ */ in zlog_stream_close() argument
868 zlog_bool finished = zlog_stream_finish(stream); in zlog_stream_close()
869 zlog_stream_destroy(stream); in zlog_stream_close()