@@ -119,21 +119,21 @@ var loggingMutex = sync.RWMutex{}
119119func AddLogLevelCategory (category LogCategory , level LogLevel ) {
120120 loggingMutex .Lock ()
121121 defer loggingMutex .Unlock ()
122- C .kernel_add_log_level_category (C . kernel_LogCategory ( category ), C . kernel_LogLevel ( level ))
122+ C .kernel_add_log_level_category (category . mustC ( ), level . mustC ( ))
123123}
124124
125125// EnableLogCategory enables logging for a specific category or all categories
126126func EnableLogCategory (category LogCategory ) {
127127 loggingMutex .Lock ()
128128 defer loggingMutex .Unlock ()
129- C .kernel_enable_log_category (C . kernel_LogCategory ( category ))
129+ C .kernel_enable_log_category (category . mustC ( ))
130130}
131131
132132// DisableLogCategory disables logging for a specific category or all categories
133133func DisableLogCategory (category LogCategory ) {
134134 loggingMutex .Lock ()
135135 defer loggingMutex .Unlock ()
136- C .kernel_disable_log_category (C . kernel_LogCategory ( category ))
136+ C .kernel_disable_log_category (category . mustC ( ))
137137}
138138
139139// LogLevel represents the logging level
@@ -145,6 +145,21 @@ const (
145145 LogLevelInfo
146146)
147147
148+ func (l LogLevel ) mustC () C.kernel_LogLevel {
149+ c , err := l .c ()
150+ if err != nil {
151+ panic (err )
152+ }
153+ return c
154+ }
155+
156+ func (l LogLevel ) c () (C.kernel_LogLevel , error ) {
157+ if l < LogLevelTrace || l > LogLevelInfo {
158+ return 0 , ErrInvalidLogLevel
159+ }
160+ return C .kernel_LogLevel (l ), nil
161+ }
162+
148163// LogCategory represents a logging category
149164type LogCategory int
150165
@@ -162,6 +177,21 @@ const (
162177 LogKernel
163178)
164179
180+ func (c LogCategory ) mustC () C.kernel_LogCategory {
181+ cType , err := c .c ()
182+ if err != nil {
183+ panic (err )
184+ }
185+ return cType
186+ }
187+
188+ func (c LogCategory ) c () (C.kernel_LogCategory , error ) {
189+ if c < LogAll || c > LogKernel {
190+ return 0 , ErrInvalidLogCategory
191+ }
192+ return C .kernel_LogCategory (c ), nil
193+ }
194+
165195// LoggingOptions configures the format of log messages
166196type LoggingOptions struct {
167197 LogTimestamps bool // Prepend a timestamp to log messages
0 commit comments