27.如何在日志中有颜色?

本文介绍了如何为日志信息添加颜色,以提高在Bash控制台中查看日志时的可读性和错误检测效率。通过在文本前添加特定的字符串和颜色代码,例如`33[31m`来改变日志文本颜色,可以轻松区分不同类型的日志消息。记得在每行末尾加上重置颜色的代码,以防止颜色影响后续的日志输出。
摘要由CSDN通过智能技术生成

使用脚本总是有用的,尤其是当我们想要自动化很多事情时。但是大多数此类脚本都会生成大量日志,以便能够跟踪正在发生的事情。但是,当我们想查看管道期间发生的事情并快速查看是否发生错误时,拥有这么多日志并无济于事。

这就是为什么今天我们将看到如何为您的生活和日志增添色彩!

怎么做?
在此示例中,代码在 Go 中,但它适用于在 Bash 控制台中打印日志的每个系统。

要更改文本的颜色,您只需要添加如下所示的内容:\033[31m

这个小字符串是我们改变文本颜色所需要的。最后两个数字可以帮助我们选择要显示的颜色。在此示例中,所选颜色为红色。

所有颜色的例子

package main

var Reset = "\033[0m" 
var Red = "\033[31m" 
var Green = "\033[32m" 
var Yellow = "\033[33m" 
var Blue = "\033[34m" 
var Purple = "\033[35m" 
var Cyan = "\033[36m" 
var Gray = "\033[37m" 
var White = "\033[97m"

func main() {
    
    println(White + 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个使用Qt C++封装的spdlog日志系统的示例代码: ```cpp #include <QObject> #include <QTimer> #include <QString> #include <spdlog/spdlog.h> #include <spdlog/sinks/basic_file_sink.h> #include <spdlog/sinks/stdout_color_sinks.h> class QtSpdLogger : public QObject { Q_OBJECT public: explicit QtSpdLogger(QObject *parent = nullptr, QString logFileName = "example.log", qint64 logFileSize = 1048576, int maxLogFiles = 5); ~QtSpdLogger(); void logDebug(QString message); void logInfo(QString message); void logWarn(QString message); void logError(QString message); private: std::shared_ptr<spdlog::logger> m_logger; QTimer m_timer; QString m_logFileName; qint64 m_logFileSize; int m_maxLogFiles; void initLogger(); void rotateLogFiles(); }; QtSpdLogger::QtSpdLogger(QObject *parent, QString logFileName, qint64 logFileSize, int maxLogFiles) : QObject(parent), m_logFileName(logFileName), m_logFileSize(logFileSize), m_maxLogFiles(maxLogFiles) { initLogger(); connect(&m_timer, &QTimer::timeout, this, &QtSpdLogger::rotateLogFiles); m_timer.start(2000); } QtSpdLogger::~QtSpdLogger() { m_logger->flush(); } void QtSpdLogger::initLogger() { // Create console sink with color auto consoleSink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>(); consoleSink->set_level(spdlog::level::trace); // Create file sink auto fileSink = std::make_shared<spdlog::sinks::basic_file_sink_mt>(m_logFileName.toStdString(), m_logFileSize, m_maxLogFiles); fileSink->set_level(spdlog::level::trace); // Create combined logger with console and file sink spdlog::sinks_init_list sinkList = { consoleSink, fileSink }; m_logger = std::make_shared<spdlog::logger>("logger", sinkList); m_logger->set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%^%L%$] [%s:%#] %v"); m_logger->set_level(spdlog::level::trace); } void QtSpdLogger::logDebug(QString message) { m_logger->debug(message.toStdString()); } void QtSpdLogger::logInfo(QString message) { m_logger->info(message.toStdString()); } void QtSpdLogger::logWarn(QString message) { m_logger->warn(message.toStdString()); } void QtSpdLogger::logError(QString message) { m_logger->error(message.toStdString()); } void QtSpdLogger::rotateLogFiles() { m_logger->flush(); spdlog::rotating_logger_mt("logger", m_logFileName.toStdString(), m_logFileSize, m_maxLogFiles); } ``` 使用该日志系统的示例代码: ```cpp #include <QCoreApplication> #include "QtSpdLogger.h" int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QtSpdLogger logger(nullptr, "example.log", 1048576, 5); logger.logDebug("This is a debug message."); logger.logInfo("This is an info message."); logger.logWarn("This is a warning message."); logger.logError("This is an error message."); return a.exec(); } ``` 该日志系统将在控制台和日志文件中输出相同的日志信息,控制台的日志信息将使用颜色进行区分,日志文件将每隔2秒钟刷新一次,同时受限制的文件大小和数量将自动轮换。日志信息的格式如下: ``` [2021-07-27 11:05:19.327] [DEBUG] [main.cpp:12] This is a debug message. [2021-07-27 11:05:19.327] [INFO] [main.cpp:13] This is an info message. [2021-07-27 11:05:19.327] [WARN] [main.cpp:14] This is a warning message. [2021-07-27 11:05:19.327] [ERROR] [main.cpp:15] This is an error message. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q shen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值