chiark / gitweb /
journal: implement message catalog
[elogind.git] / src / shared / logs-show.h
index 58ff9e5760bd8b39101f07fc2f2ca2cf8cd1db39..11cb41aab38d070acb6bda18a63bfbd8a6334c91 100644 (file)
@@ -33,6 +33,8 @@ typedef enum OutputMode {
         OUTPUT_VERBOSE,
         OUTPUT_EXPORT,
         OUTPUT_JSON,
+        OUTPUT_JSON_PRETTY,
+        OUTPUT_JSON_SSE,
         OUTPUT_CAT,
         _OUTPUT_MODE_MAX,
         _OUTPUT_MODE_INVALID = -1
@@ -40,17 +42,22 @@ typedef enum OutputMode {
 
 typedef enum OutputFlags {
         OUTPUT_SHOW_ALL       = 1 << 0,
-        OUTPUT_MONOTONIC_MODE = 1 << 1,
-        OUTPUT_FOLLOW         = 1 << 2,
-        OUTPUT_WARN_CUTOFF    = 1 << 3,
-        OUTPUT_FULL_WIDTH     = 1 << 4,
-        OUTPUT_COLOR          = 1 << 5
+        OUTPUT_FOLLOW         = 1 << 1,
+        OUTPUT_WARN_CUTOFF    = 1 << 2,
+        OUTPUT_FULL_WIDTH     = 1 << 3,
+        OUTPUT_COLOR          = 1 << 4,
+        OUTPUT_CATALOG        = 1 << 5
 } OutputFlags;
 
-int output_journal(sd_journal *j, OutputMode mode, unsigned line,
-                   unsigned n_columns, OutputFlags flags);
+int output_journal(
+                FILE *f,
+                sd_journal *j,
+                OutputMode mode,
+                unsigned n_columns,
+                OutputFlags flags);
 
 int show_journal_by_unit(
+                FILE *f,
                 const char *unit,
                 OutputMode mode,
                 unsigned n_columns,
@@ -58,5 +65,11 @@ int show_journal_by_unit(
                 unsigned how_many,
                 OutputFlags flags);
 
+void json_escape(
+                FILE *f,
+                const char* p,
+                size_t l,
+                OutputFlags flags);
+
 const char* output_mode_to_string(OutputMode m);
 OutputMode output_mode_from_string(const char *s);