]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
python: Add bindings for cgroup_set_default_logger()
authorTom Hromatka <tom.hromatka@oracle.com>
Fri, 19 May 2023 21:59:36 +0000 (15:59 -0600)
committerTom Hromatka <tom.hromatka@oracle.com>
Mon, 3 Jul 2023 14:50:40 +0000 (08:50 -0600)
Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
Reviewed-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>
src/python/cgroup.pxd
src/python/libcgroup.pyx

index ec32603291b98c8d0fc490e9f520748e288c9676..31d9ad4a4631b12a925cb19eb3428917af0f89ae 100644 (file)
@@ -47,6 +47,13 @@ cdef extern from "libcgroup.h":
         cgroup_systemd_mode_t mode
         pid_t pid
 
+    cdef enum cgroup_log_level:
+        CGROUP_LOG_CONT
+        CGROUP_LOG_ERROR
+        CGROUP_LOG_WARNING
+        CGROUP_LOG_INFO
+        CGROUP_LOG_DEBUG
+
     int cgroup_init()
     const cgroup_library_version * cgroup_version()
 
@@ -119,4 +126,6 @@ cdef extern from "libcgroup.h":
                                            char **current_path)
 
     int cgroup_change_cgroup_path(const char *dest, pid_t pid, const char * const controllers[])
+
+    void cgroup_set_default_logger(int log_level)
 # vim: set et ts=4 sw=4:
index d1925f3885767134f721afe04d101c2704cf6b27..ded55a3fdb1d01a8b714f4593fa18e1d2529448f 100644 (file)
@@ -37,6 +37,13 @@ cdef class SystemdMode:
     CGROUP_SYSTEMD_MODE_IGNORE_DEPS = cgroup.CGROUP_SYSTEMD_MODE_IGNORE_DEPS
     CGROUP_SYSTEMD_MODE_IGNORE_REQS = cgroup.CGROUP_SYSTEMD_MODE_IGNORE_REQS
 
+cdef class LogLevel:
+    CGROUP_LOG_CONT = cgroup.CGROUP_LOG_CONT
+    CGROUP_LOG_ERROR = cgroup.CGROUP_LOG_ERROR
+    CGROUP_LOG_WARNING = cgroup.CGROUP_LOG_WARNING
+    CGROUP_LOG_INFO = cgroup.CGROUP_LOG_INFO
+    CGROUP_LOG_DEBUG = cgroup.CGROUP_LOG_DEBUG
+
 def c_str(string):
     return bytes(string, "ascii")
 
@@ -710,6 +717,18 @@ cdef class Cgroup:
             raise RuntimeError("cgroup_change_cgroup_path failed :"
                                "{}".format(ret))
 
+    @staticmethod
+    def log_level(log_level):
+        """Set the libcgroup log level
+
+        Arguments:
+        log_level - libcgroup.LogLevel
+
+        Description:
+        Set the libcgroup logger to stdout at the specified log_level
+        """
+        cgroup.cgroup_set_default_logger(log_level)
+
     def __dealloc__(self):
         cgroup.cgroup_free(&self._cgp);