# 日志
*****
## 简单介绍
日志很简单。我没有使用任何外部(或者说是外人)的日志依赖。
在项目中,如果你想要输入一条日志在控制台,通过`QQLog`类的静态方法即可。
日志使用了**彩色控制台**依赖。
>[success] 这个**彩色控制台**也是由我开发的。依赖地址(不保证为最新版本):
```xml
<!-- https://mvnrepository.com/artifact/io.gitee.ForteScarlet.plusutils/console-plus -->
<dependency>
<groupId>io.gitee.ForteScarlet.plusutils</groupId>
<artifactId>console-plus</artifactId>
<version>1.2</version>
</dependency>
```
>[warning] 彩色控制台目前并没有文档,但是使用起来很简单。在没有文档的时候,如果你想了解可以直接联系我或者加入交流群联系群主。
>[danger] 彩色控制台有一些限制,例如在`Eclipse`中,似乎需要安装对应的插件(例如`ANSI Escape in Console`[ **此插件下载地址** ](https://download.csdn.net/download/leiyong0326/10112547) )才可以显示正常。
## **日志拦截**
由于目前来讲,当前日志的本质实际上就只是单纯的控制台打印,所以假如你想要与Log4j等这样的日志框架相结合时比较困难的。
于是,我在核心的`1.2.3-BETA`版本之后,增加了一种日志拦截方案。
首先,你需要实现一个接口`QQLogBack`
这个接口只存在一个抽象方法,因此可以使用函数表达式进行实现。
```java
/**
* 拦截QQLog日志的输出,当返回值为true的时候才会输出到控制台。
* @param msg 信息msg,可以直接String.valueOf()
* @param level 日志级别
* @param e 如果存在异常,此为异常
,否则为null
* @return 是否输出此日志
*/
boolean onLog(Object msg, LogLevel level, Throwable e);
```
此处的msg为框架内部会输出的内容。(不包括输出前面的时间戳等信息,是指纯输出内容。)
当你实现完这个接口的时候,将你的实现类放入启动器的构造参数中即可。
>[info] 以下使用函数表达式和`HTTP API`组件进行示例。
```java
public static void main(String[] args) {
//实现QQLogBack接口
QQLogBack qqLogBack = (m, l, e) -> {
//控制台展示级别 + 信息
System.out.println(l + ":" + m);
//返回false, 不输出日志
return false;
};
//创建启动器实例的时候,将QQLogBack作为构造参数填入
HttpApplication httpApplication = new HttpApplication(qqLogBack);
// 启动
httpApplication.run(new DemoRun());
}
```
这样一来,假如你想要通过你自己的日志来输出而不是通过我的控制台打印,你便可以通过实现此接口来拦截所有的日志并通过自定义的日志输出,且返回值为false来抑制原版的输出。
- 前言
- 简单介绍
- 我该如何阅读文档
- 视频教程
- 安装与使用
- 开源协议
- 免责&捐助
- 注意事项
- 版本命名规则简介
- 主要功能版本历史
- 功能指引
- 通用API与功能
- 国际化语言
- 异常
- 消息监听
- @Listen
- @OnListen模板
- @Filter
- 消息参数截取
- @Spare
- @Constr
- @Ignore
- @ListenBreak
- @ListenBreakPlugin
- @ListenBody
- 监听响应
- 成功判定与返回值
- 监听上下文
- 动态参数
- 监听消息API
- 异步监听 @Async
- 限流监听 @Limit
- 自定义Http送信器
- 枚举与类型
- 送信器
- SENDER
- SETTER
- GETTER
- 返回值
- 其他位置
- 日志与日志拦截
- 异常处理
- 依赖注入
- 自定义依赖获取
- 批量依赖载入
- 注意事项
- 常量
- 定时任务
- 自定义过滤
- 拦截器
- 拦截器总定义
- 上下文对象总定义
- 监听消息拦截
- 送信器拦截
- 监听函数拦截
- CAT码
- CQ码
- CQCode
- CQ码工具类
- CQ扩展工具类
- AppendList拼接链
- 高级内容
- 阻断机制
- 截断机制
- 自定义枚举类型
- 枚举工厂
- byName注解
- 自定义注解
- 配置
- 文件配置
- 注解配置
- 参数配置
- 多配置
- 多账号
- 自定义账号管理器
- 小心!
- 核心版本与组件如何升级核心
- 核心版本迭代指南
- 核心
- 更新日志
- jar包与依赖
- 监听消息类结构图
- 快速启动
- 模组与扩展
- 模组开发
- 现有模组
- 通用模组-延时任务
- 通用模组-CQ码工具
- 转义器
- CQ码操作工具类
- CQ码模板-CodeTemplate
- CQ码载体-KQCode
- CQ码构建器
- MQ码工具类
- 通用模组-redis-bot管理器
- 通用模组-Debugger
- Debugger-common模块
- Debugger-server模块
- Debugger-client模块
- 通用模组-钉钉机器人
- 组件-Mirai(JVM)
- 快速开始(1.13+)
- springboot-starter
- 注意事项
- 配置
- 额外的内容
- 快速回复
- 额外监听
- CQ码解析
- 组件-酷Q(QQ)-CQ HTTP API(基本失效)
- 快速开始(推荐)
- 快速开始(1.7.x以下,不推荐)
- 快速开始(Springboot启动器)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 额外的内容
- 自定义额外监听
- CQ送信器
- 元事件
- 监听消息类结构图
- 组件-酷Q(QQ)-JCQ(失效)
- 快速开始
- 更新日志
- 额外的内容
- JCQ日志
- 配置
- 注意事项
- 监听消息类结构图
- 组件-酷Q(QQ)-HTTP TO CQ(失效)
- 快速开始(核心1.7.x及以下)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 监听消息类结构图
- 组件-酷Q(QQ)-LEMOC (失效)
- 快速开始(核心1.7.x及以下)
- 配置
- 注意事项
- 更新日志
- 监听消息类结构图
- Springboot快速启动器
- 常见问题汇总
- BUG反馈
- 更新计划总览