php 日志调试

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: php 日志调试
/**
 * 仅用于日志调试
 *
 * @param  string|array $content    日志内容
 * @param  bool         $json       是否采用JSON格式存储
 * @param  bool         $append     是否采用追加模式记录日志
 * @param  string       $filename   文件名(考虑到权限问题,统统压入/tmp目录)
 *
 * @return int
 */
if (!function_exists("debug")) {
    function debug($content, $json = true, $append = true, $filename = "debug", $base_dir = "/tmp/")
    {
        if (empty($filename) || empty($content)) return 0;
        $filename = str_replace("/", "", $filename);
        $filename = str_replace("\\", "", $filename);
        //        if ("linux" == strtolower(PHP_OS)) {
        //            $dir = !empty($base_dir) ? $base_dir : (env("CACHE_DIR") ? env("CACHE_DIR") . "/logs/" : "/tmp/");
        //        } else {
        //            $dir = env("CACHE_DIR") ? CACHE_DIR : 'C:\\';
        //        }
        $dir = storage_path('logs/' . date('Ymd'));
        $rs = true;
        //if (!is_dir($dir)) {
        $rs = @mkdir($dir, 0755, true);
        //}
        if (empty($rs)) $dir = "/tmp/";
        $filename = $dir . DIRECTORY_SEPARATOR . $filename . ".log";
        if (!empty($json)) {
            $content = json_encode($content, JSON_UNESCAPED_UNICODE);
        } else {
            $content = var_export($content, true);
        }
        $client_ip = getClientIp();
        $log_time = date('Y-m-d H:i:s', time());
        $content = "【" . $log_time . " | {$client_ip}】" . $content . "\r\n";
        if (empty($append)) {
            $rs = file_put_contents($filename, $content);
        } else {
            $rs = file_put_contents($filename, $content, FILE_APPEND);
        }
        return $rs;
    }
}
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
消息中间件 存储 Java
手动实现 Spring Boot 日志链路追踪:提升调试效率的利器
【8月更文挑战第8天】在复杂的分布式系统中,日志是诊断问题、追踪系统行为的重要工具。然而,随着微服务架构的普及,服务间的调用链路错综复杂,传统的日志记录方式往往难以快速定位问题源头。今天,我们将探讨如何在不依赖外部组件(如Zipkin、Sleuth等)的情况下,手动实现Spring Boot应用的日志链路追踪,让日志定位更加便捷高效。
194 1
|
1月前
|
IDE PHP 开发工具
【PHP开发专栏】Xdebug在PHP调试中的应用
Xdebug 是一个功能强大的 PHP 扩展,提供调试、代码分析和性能分析等功能。本文介绍了 Xdebug 的基本概念、安装配置方法及在 PHP 调试中的应用技巧,包括断点调试、堆栈跟踪、远程调试和性能分析等。通过合理使用 Xdebug,可以显著提高调试效率和代码质量。
36 3
|
2月前
|
Java 程序员 应用服务中间件
「测试线排查的一些经验-中篇」&& 调试日志实战
「测试线排查的一些经验-中篇」&& 调试日志实战
23 1
「测试线排查的一些经验-中篇」&& 调试日志实战
|
3月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
49 2
|
3月前
|
监控 IDE PHP
php xdebug的配置、调试、跟踪、调优、分析
php xdebug的配置、调试、跟踪、调优、分析
|
3月前
|
缓存 监控 算法
分析慢日志文件来优化 PHP 脚本的性能
分析慢日志文件来优化 PHP 脚本的性能
|
3月前
|
测试技术 PHP 数据库
PHP中的异常处理与错误调试
【9月更文挑战第17天】在PHP编程中,遇到问题和错误是在所难免的。了解如何正确处理这些异常,并有效地进行错误调试,是提升代码质量和开发效率的关键。本文将引导你理解PHP中的异常处理机制,并通过实际代码示例,展示如何捕捉、处理异常以及进行错误调试,帮助你构建更健壮的应用程序。
|
4月前
|
XML Java 数据库
"揭秘!Spring Boot日志链路追踪大法,让你的调试之路畅通无阻,效率飙升,问题无所遁形!"
【8月更文挑战第11天】在微服务架构中,请求可能跨越多个服务与组件,传统日志记录难以全局追踪问题。本文以电商系统为例,介绍如何手动实现Spring Boot应用的日志链路追踪。通过为每个请求生成唯一追踪ID并贯穿全链路,在服务间传递该ID,并在日志中记录,即使日志分散也能通过ID串联。提供了实现这一机制所需的关键代码片段,包括使用过滤器设置追踪ID、业务代码中的日志记录及Logback配置。此方案显著提升了问题定位的效率,适用于基于Spring Boot构建的微服务环境。
107 4
|
4月前
|
SQL 数据库 Java
Hibernate 日志记录竟藏着这些秘密?快来一探究竟,解锁调试与监控最佳实践
【8月更文挑战第31天】在软件开发中,日志记录对调试和监控至关重要。使用持久化框架 Hibernate 时,合理配置日志可帮助理解其内部机制并优化性能。首先,需选择合适的日志框架,如 Log4j 或 Logback,并配置日志级别;理解 Hibernate 的多级日志,如 DEBUG 和 ERROR,以适应不同开发阶段需求;利用 Hibernate 统计功能监测数据库交互情况;记录自定义日志以跟踪业务逻辑;定期审查和清理日志避免占用过多磁盘空间。综上,有效日志记录能显著提升 Hibernate 应用的性能和稳定性。
52 0
|
4月前
|
存储 JSON 监控
FastAPI日志之谜:如何揭开Web应用监控与调试的面纱?
【8月更文挑战第31天】在现代Web开发中,日志记录对于监控应用状态、诊断问题和了解用户行为至关重要。FastAPI框架提供了强大的日志功能,使开发者能轻松集成日志记录。本文将详细介绍如何在FastAPI中设置和利用日志,包括基础配置、请求响应日志、错误处理和结构化日志等内容,帮助提升应用的可维护性和性能。
170 0