代码拉取完成,页面将自动刷新
日志记录框架
npm install @ohos/logback --save
OpenHarmony npm环境配置等更多内容,请参考 如何安装OpenHarmony npm包 。
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
},
{
"name": "ohos.permission.GET_NETWORK_INFO"
},
{
"name": "ohos.permission.GET_WIFI_INFO"
}
]
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
}
]
import { Level, Appender, FilterEnum, Configuration, Logger, LoggerFactory } from '@ohos/logback'
let configuration: Configuration = {
appender: [{
name: 'ROOT',
className: AppenderEnum.CONSOLE,
encoder: {
pattern: {
msg: '%date %level %logger %msg'
}
}
},
{
name: 'LOGGER',
className: AppenderEnum.CONSOLE,
encoder: {
pattern: {
msg: '%date %level %logger %msg'
}
}
},
{
name: 'THRESHOLD',
className: AppenderEnum.CONSOLE,
encoder: {
pattern: {
msg: '%date %level %logger %msg'
}
},
filter: { //ThresholdFilter
className: FilterEnum.THRESHOLD,
level: Level.INFO,
}
},
{
name: 'LEVEL',
className: AppenderEnum.CONSOLE,
encoder: {
pattern: {
msg: '%date %level %logger %msg'
}
},
filter: { //LevelFilter
className: FilterEnum.LEVEL,
level: Level.WARN,
onMatch: Match.ACCEPT,
onMismatch: Match.DENY
}
},
{
name: 'LOGFILE',
className: AppenderEnum.FILE,
file: '111.log',
encoder: {
pattern: {
msg: '%level %logger %msg'
}
},
filter: { //ThresholdFilter
className: FilterEnum.THRESHOLD,
level: Level.ERROR,
}
},
{
name: 'SMTP',
className: AppenderEnum.SMTP,
fromMail: "xxx1@xxx.com", //发送者邮箱
toMail: "xxx2@xxx.com", //接收者邮箱
subject: "mail subject", //邮件主题
smtpHost: "smtp host ip", //接收邮件服务器的host地址
smtpPort: 25, ////接收邮件服务器的端口
username: "xxx", //发送者邮箱用户名,@之前的部分
password: "xxx", //发送者邮箱密码
},
{
name: 'SIFT',
className: AppenderEnum.SIFT,
discriminator: {
Key: 'userid',
DefaultValue: 'unknown'
},
sift: {
appender: {
file: '${userid}.log',
className: AppenderEnum.FILE,
encoder: {
pattern: {
msg: '%level %logger %msg'
}
},
filter: { //ThresholdFilter
className: FilterEnum.THRESHOLD,
level: Level.INFO,
}
},
mdc: [
{ key: 'userid', value: '100001' },
{ key: 'userid', value: '100002' }
]
}
},
{
name: 'DB',
className: AppenderEnum.DB,
storeName: 'logback_rdb.db',
encoder: {
pattern: {
msg: '%date %level %logger %msg'
}
},
filter: { //ThresholdFilter
className: FilterEnum.THRESHOLD,
level: Level.INFO,
}
},
{
name: 'ROLLING',
className: AppenderEnum.ROLLING_FILE,
encoder: {
pattern: {
msg: '%date %level %logger %msg'
}
},
rollingPolicy:{
fileName: 'rolling.log',
filePattern: 'rolling-%d{yyyy-MM-dd HH:mm:ss}.log',
maxHistory: 5
}
}],
logger: [{
name: 'com.log.logger',
additivity: true,
level: Level.FATAL,
appenderRef: {
ref: 'LOGGER'
}
}, {
name: 'com.log.threshold',
additivity: true,
level: Level.WARN,
appenderRef: {
ref: 'THRESHOLD'
}
}, {
name: 'com.log.level',
additivity: true,
level: Level.WARN,
appenderRef: {
ref: 'LEVEL'
}
},
{
name: 'com.log.file',
additivity: true,
level: Level.WARN,
appenderRef: {
ref: 'LOGFILE'
}
},
{
name: 'com.log.smtp',
additivity: true,
level: Level.ERROR,
appenderRef: {
ref: 'SMTP'
}
},
{
name: 'com.log.sift',
additivity: true,
level: Level.WARN,
appenderRef: {
ref: 'SIFT'
}
},
{
name: 'com.log.db',
additivity: true,
level: Level.WARN,
appenderRef: {
ref: 'DB'
}
},
{
name: 'com.log.rolling',
additivity: true,
level: Level.WARN,
appenderRef: {
ref: 'ROLLING'
}
}],
root: {
level: Level.ERROR,
appenderRef: {
ref: 'ROOT'
}
}
}
globalThis.configure = configuration
let logger: Logger = LoggerFactory.getLogger("com.log.hello")
logger.debug("=====debug=====")
logger.info("=====info=====")
logger.warn("=====warn=====")
logger.error("=====error=====")
logger.fatal("=====fatal=====")
let logger: Logger = LoggerFactory.getLogger("com.log.file")
logger.info("=====info=====")
logger.warn("=====warn=====")
logger.error("=====error=====")
Logger.debug()
Logger.setLevel(level: Level)
在下述版本验证通过:
|---- logback
| |---- entry # 示例代码文件夹
| |---- logback # logback库文件夹
| |----src
|----main
|----ets
|----components
|----appender #不同保存日志的appender类型
|----config #日志消息转换
|----format #日期格式化文件
|----formatter #日志配置文件
|----io #文件操作
|----log #日志输出
|----mdc #MDC存储
|----rdb #数据库操作
|----slf4j #slf4j日志打印类文件
|----util #工具类文件
|----AppenderEnum.ts #日志打印类型枚举
|----FilterEnum.ts #日志过滤类型枚举
|----Level.ts #日志级别枚举
|----Logger.ts #日志打印输出类
| |---- index.ts # 对外接口
| |---- README.md # 安装使用方法
使用过程中发现任何问题都可以提 Issue 给我们,当然,我们也非常欢迎你给我们发 PR 。
本项目基于 Apache License 2.0 ,请自由地享受和参与开源。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。