正式环境log日志配置

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL DuckDB 分析主实例,集群系列 8核16GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

log日志,通常是根系统或者某些软件有关的相关记录,方便用户了解系统或者软件的运行情况,它并没有固定的格式,通常是文本文件,可以用记事本来 查看内容。log生成的时候,文件名会考虑的有意义一点,比如:51yip.com.access.log访问记录日志,51yip.com.error.log错误日志,mail.log邮件日志等等,基本上可以从名子上看出这个log日志是干什么用的。

拉科顿"跑"失良机的故事,我想学理工类的童鞋,都知道,高中物理课本里面有的。说是的拉科顿研究电磁感应时,来回跑的时候过程中,错失了看到指针便转的机会,如果当时有摄像机的话,就可以记录下指针每一时刻的运动情况,那么电磁感应的发现者就要换人了。哈哈。

上面的例子告诉我们,记录log的重要性。这就要求我们,写代码的时候,在有必要加log的地方,要产生log日志;装软件的时候,以及软件运行时,都要记录下软件的运行情况的log日志。

错误回显,一般常用语开发模式,方便查看,但错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利。在正式环境下,把错误信息记录在日志里。正好可以关闭错误回显

例如:

1,apache的配置里面有产生log日志的地方

Java代码   收藏代码
  1. ErrorLog        logs/www.test.com-error_log  
  2. CustomLog       logs/www.test.com-access_log common  

如果出现了什么意外情况的话,这二个日志文件肯定能给你很大的帮助。

2,MySQL安装的时候有一个.err的错误日志外,运行时默认是不产生log日志,这个要自己去配置,mysql提供一种慢查询日志

  • 在my.cnf或my.ini通过 log-slow-queries[=file_name]
  • mysqld 进程启动时,指定--log-slow-queries[=file_name]选项

有了log日志后,我们就可以用分析工具来分析查询慢的原因, 包括执行频率, 数据量, 查询消耗等,我们就可以针对实际情况做出优化 。

mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,就要到 my.ini 或者 my.cnf 的 [mysqld] 增加如下内容 
配置文件里面修改,需增加如下几行

Java代码   收藏代码
  1. long_query_time = 2  
  2. log-slow-queries = /usr/local/mysql/log/slow.log   
  3. log_queries_not_using_indexes =on  #记录没有使用索引的查询   

    long_query_time 是指执行超过多久的sql会被log下来,这里是2秒。 
    log-slow-queries 设置把日志写在那里,为空的时候,系统会给慢查询日志赋予主机名,并被附加slow.log

MYSQL各版本之间有所区别,通过以下命令修改

Java代码   收藏代码
  1. SHOW GLOBAL VARIABLES;   -- 查询变量  
  2. show variables like '%slow%'; -- 查询变量   
  3. SET global log_output='TABLE';  -- 输出到表  
  4. SET global log=ON;                     -- 打开所有命令执行记录功能general_log, 所有语句: 成功和未成功的.  
  5. SET global long_query_time=2;  -- 设置long_query_time  
  6. SET global log_queries_not_using_indexes=on;-- 记录未使用索引的sql语句  
  7. -- 查询sql执行记录  
  8. select * from mysql.slow_log order by 1;     -- 执行成功的:慢查询语句,和未使用索引的语句  
  9. select * from mysql.general_log order by 1;  -- 所有语句:  成功和未成功的.   

3,我们经常会用到crontab来定时跑一些程序,以php为例,这个时候也要产生日志

不然你怎么详细的知道程序的运行情况呢。可以用fopen来产生也一个log,或者是error_log()来产生log,方法有很多。生成文件后,把要记录log信息的地方,加到文件里面去,这样你就可以知道php程序的运行情况了。就根你在代码按插了间谍差不多。

在PHP里面的设定sql语句

Java代码   收藏代码
  1. $sql = '/* FILE: ' . __FILE__ . ', LINE: ' . __LINE__ . ' */ ' . "SELECT managerid,managername,realname FROM manager WHERE isbad=0 and managerid={$managerid}";  

有了SQL注释,我们能够迅速定位到卡死系统的sql语句是哪个php文件的哪一行。然后到那里仔细推敲代码,解决问题

Java代码   收藏代码
  1. /* FILE: /var/www/jjwxc.net/www.jjwxc/backend/sms.php, LINE: 258 */ SELECT managerid,managername,realname FROM manager WHERE isbad=0 and managerid=1   

要写日志的东西很多,邮件服务器,负载均衡服务器等等,只要养成了良好的写日志的习惯,我们在遇到紧急问题时,才有所依据,才知道从什么地方解决问题,你可不要"跑"失良机哦。

4.PHP查看错误log

Java代码   收藏代码
  1. log_errors = On  
  2. error_log = /tmp/logs/php/phperror.log //chmod 777  

 如果是在linux 下,则可以使用如下方式查看log文件

Java代码   收藏代码
  1. tail -n 20 /tmp/logs/php/phperror.log  

 在PHP代码中如何记录log,在PHP官方文档中有个函数error_log()

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
248 0
|
3月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
583 5
|
9月前
|
SQL Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— application.yml 中对日志的配置
在 Spring Boot 项目中,`application.yml` 文件用于配置日志。通过 `logging.config` 指定日志配置文件(如 `logback.xml`),实现日志详细设置。`logging.level` 可定义包的日志输出级别,例如将 `com.itcodai.course03.dao` 包设为 `trace` 级别,便于开发时查看 SQL 操作。日志级别从高到低为 ERROR、WARN、INFO、DEBUG,生产环境建议调整为较高级别以减少日志量。本课程采用 yml 格式,因其层次清晰,但需注意格式要求。
832 0
|
安全 BI 网络安全
EventLog Analyzer 如何满足等保合规要求?密码有效期、产品日志保留、配置备份三大核心问题全面解答
EventLog Analyzer(ELA)助力企业满足网络安全等级保护要求,支持配置自动/手动备份、日志180天留存及密码策略管理,提升合规性与安全运营效率。
119 0
|
7月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
821 54
|
5月前
|
JSON 安全 Go
Go语言项目工程化 —— 日志、配置、错误处理规范
本章详解Go语言项目工程化核心规范,涵盖日志、配置与错误处理三大关键领域。在日志方面,强调其在问题排查、性能优化和安全审计中的作用,推荐使用高性能结构化日志库zap,并介绍日志级别与结构化输出的最佳实践。配置管理部分讨论了配置分离的必要性,对比多种配置格式如JSON、YAML及环境变量,并提供viper库实现多环境配置的示例。错误处理部分阐述Go语言显式返回error的设计哲学,讲解标准处理方式、自定义错误类型、错误封装与堆栈追踪技巧,并提出按调用层级进行错误处理的建议。最后,总结各模块的工程化最佳实践,助力构建可维护、可观测且健壮的Go应用。
|
6月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
700 4
|
8月前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
250 22
|
9月前
|
监控 Java 应用服务中间件
Tomcat log日志解析
理解和解析Tomcat日志文件对于诊断和解决Web应用中的问题至关重要。通过分析 `catalina.out`、`localhost.log`、`localhost_access_log.*.txt`、`manager.log`和 `host-manager.log`等日志文件,可以快速定位和解决问题,确保Tomcat服务器的稳定运行。掌握这些日志解析技巧,可以显著提高运维和开发效率。
896 13