• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 //! hilog dylib_crate for Rust.
17 use std::ffi::{c_char};
18 
19 #[macro_use]
20 mod macros;
21 
22 /// log level
23 #[derive(Debug)]
24 pub enum LogLevel {
25     /// min log level
26     LogLevelMin = 0,
27     /// The "debug" level.
28     ///
29     /// Designates lower priority log.
30     Debug = 3,
31     /// The "info" level.
32     ///
33     /// Designates useful information.
34     Info = 4,
35     /// The "warn" level.
36     ///
37     /// Designates hazardous situations.
38     Warn = 5,
39     /// The "error" level.
40     ///
41     /// Designates very serious errors.
42     Error = 6,
43     /// The "fatal" level.
44     ///
45     /// Designates major fatal anomaly.
46     Fatal = 7,
47     /// max log level
48     LogLevelMax
49 }
50 
51 /// log type
52 #[derive(Debug)]
53 pub enum LogType {
54     /// log type for app log
55     LogApp = 0,
56     /// log type for init log
57     LogInit = 1,
58     /// log type for core log
59     LogCore = 3,
60     /// log type for kernel log
61     LogKmsg = 4,
62     /// max log type
63     LogTypeMax
64 }
65 
66 /// hilog label
67 #[derive(Debug)]
68 pub struct HiLogLabel {
69     /// log type
70     pub log_type: LogType,
71     /// log domain
72     pub domain: u32,
73     /// log tag
74     pub tag: &'static str,
75 }
76 
77 
78 // hilog ffi interface
79 extern "C"{
80     /// hilog ffi interface HiLogIsLoggabel
HiLogIsLoggable(domain: u32, tag: *const c_char, level:u32) -> bool81     pub fn HiLogIsLoggable(domain: u32, tag: *const c_char, level:u32) -> bool;
82     /// hilog ffi interface HiLogPrint
HiLogPrint(logType: u8, level: u8, domain: u32, tag: *const c_char, fmt: *const c_char, ...) -> u3283     pub fn HiLogPrint(logType: u8, level: u8, domain: u32, tag: *const c_char, fmt: *const c_char, ...) -> u32;
84     /// hilog ffi interface IsPrivateSwitchOn
IsPrivateSwitchOn() -> bool85     pub fn IsPrivateSwitchOn() -> bool;
86     /// hilog ffi interface IsDebugOn
IsDebugOn() -> bool87     pub fn IsDebugOn() -> bool;
88 }