通用的日志记录器(PHP)

一个通用的日志记录器

 1 <?php
2 class Log4p{
3
4 const LOG_PATH = "/data/logs/mobact2rd/drawcard";
5
6 static function writeLog($str, $filename=‘debug‘, $fileCutByDate = true, $dirCutByDate = true) {
7 if (empty($str)) return;
8 $dir = ‘‘;
9
10 if ( $dirCutByDate) {
11 $dir = self::LOG_PATH . ‘/‘ . date("Ymd");
12 } else {
13 $dir = self::LOG_PATH;
14 }
15
16 if (!file_exists($dir)) {
17 @mkdir($dir, 0775, true);
18 }
19
20 $file = ‘‘;
21
22 if ($fileCutByDate) {
23 $file = $dir . ‘/‘ . $filename . ‘_‘ . date("Y-m-d") . ‘.log‘;
24 } else {
25 $file = $dir . ‘/‘ . $filename . ‘.log‘;
26 }
27
28
29 $f = fopen($file, ‘a‘);
30 if ($f) {
31 fwrite($f, $str . "\n");
32 fclose($f);
33 }
34 }
35
36
37
38 public static function getLogRootPath() {
39 return self::LOG_PATH;
40 }
41
42 // remote 日志
43 public static function r($uid, $type, $message) {
44 $log = self::buildLog($uid, $type, $message);
45 self::writeLog($log, ‘remote‘);
46 }
47
48 public static function f($uid, $type, $message) {
49 $log = self::buildLog($uid, $type, $message);
50 self::writeLog($log, ‘fetal‘);
51 }
52
53 public static function e($uid, $type, $message) {
54 $log = self::buildLog($uid, $type, $message);
55 self::writeLog($log, ‘error‘);
56 }
57
58 public static function i($uid, $type, $message) {
59 $log = self::buildLog($uid, $type, $message);
60 self::writeLog($log, ‘info‘);
61 }
62
63 public static function w($uid, $type, $message) {
64 $log = self::buildLog($uid, $type, $message);
65 self::writeLog($log, ‘warn‘);
66 }
67
68 public static function d($log = ‘‘) {
69 self::writeLog($log, ‘debug‘);
70 }
71
72 public static function m($uid, $type, $message) {
73 $log = self::buildLog($uid, $type, $message);
74 self::writeLog($log, ‘monitor‘);
75 }
76
77 public static function winner($uid, $type, $message) {
78 $log = self::buildLog($uid, $type, $message);
79 self::writeLog($log, ‘winner‘, false, false);
80 }
81
82 private static function buildLog($uid, $type, $message) {
83 $_log = array(
84 date("Y-m-d H:i:s"),
85 Utils::getRealIp(),
86 $uid,
87 $type,
88 $message,
89 );
90 return implode("\t", $_log);
91 }
92
93 }
94 ?>

通用的日志记录器(PHP),布布扣,bubuko.com

时间: 2024-08-05 00:36:40

通用的日志记录器(PHP)的相关文章

通用的日志记录器(java)

线程安全的java日志记录器 1 import java.io.BufferedWriter; 2 import java.io.File; 3 import java.io.FileWriter; 4 import java.io.IOException; 5 import java.text.SimpleDateFormat; 6 import java.util.Date; 7 import java.util.concurrent.atomic.AtomicReference; 8 9

how tomcat works读书笔记 七 日志记录器

大家能够松一口气了,这个组件比較简单,这一节和前面几节想比,也简单的多. Logger接口 Tomcat中的日志记录器都必须实现org.apache.catalina.Logger接口. package org.apache.catalina; import java.beans.PropertyChangeListener; public interface Logger { public static final int FATAL = Integer.MIN_VALUE; public s

【PHP系列】PHP推荐标准之PSR-3,日志记录器接口

上节聊完了PHP官方的相关代码规范,下面给大家带来了PHP系列的PHP推荐标准的另外两个,PSR-3,PSR-4. 首先,我们先来了解下PSR-3是怎么回事. PHP-FIG发布的第三个推荐规范与前两个不同,不是一系列的指导方针,而是一个接口,规定PHP日志记录器组件可以实现的方法. 基础 The LoggerInterface exposes eight methods to write logs to the eight RFC 5424levels (debug, info, notice

万里长征第二步——django个人博客(第二步 ——日志记录器)

定义日志记录器 可以在setting.py里设置日志记录器 # 自定义日志输出信息 LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'formatters': { 'standard': { 'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(module)s:%(funcName)s] [%(levelname)s]- %(

how tomcat works 七 日志记录器

大家可以松一口气了,这个组件比较简单,这一节和前面几节想比,也简单的多. Logger接口 Tomcat中的日志记录器都必须实现org.apache.catalina.Logger接口. package org.apache.catalina; import java.beans.PropertyChangeListener; public interface Logger { public static final int FATAL = Integer.MIN_VALUE; public s

tomcat源码阅读之日志记录器(Logger)

UML图: 1.Logger接口中定义了日志的级别:FATAL.ERROR.WARNING.INFORMATION.DEBUG,通过接口函数getVerbosity获取日志级别,setVerbosity设置日志级别: 2.接口中提供一组重载的log方法来记录日志,在LoggerBase实现类中除了log(String msg)方法没有实现外,其他重载的log方法均实现为调用这个方法来实现日志的记录: 3.在LoggerBase类中,默认的日志级别是ERROR:带日志级别参数的log方法在记录日志

Commons_logging包 Apache通用日志包

他为Log4JLogger:NoOpLog:LogKitLogger:Jdk14Logger:AvalonLogger提供了一共通用的接口进行调用,使得在使用各种不同的第三方日志包时变得非常简单.SimpleLog:是commons_logging自带的一个控制台输出日志. 可以通过简单的配置使用不同的第三方日志包. 在src根目录下放进commons-logging.properties文件,进行配置使用哪个第三方日志包. #定义了使用的具体第三方的日值包 #org.apache.common

如何在通用权限管理系统中集成log4net日志功能

开发人员都知道,在系统运行中要记录各种日志,自己写一个日志功能,无论是在效率还是功能扩展上来说都不是很好,目前大多用的是第三方的日志系统,其中一个非常有名,用的最多的就是log4net.下面是关于这个组件的介绍 ”Log4net是基于.net开发的一款非常著名的记录日志开源组件.最早是2001年7月由NeoWorks Limited启动的项目,基本的框架源, 于另外的一个非常著名的姐妹组件-log4j.现由Apache组织开发与维护.此日志架构是可灵活扩展,且通过配置文件来设置日志的属性及输出,

ABP日志管理

ABP日志管理 基于DDD的现代ASP.NET开发框架--ABP系列之8.ABP日志管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 本文由东莞-天道提供翻译 Server side(服务器端) ASP.NET Boilerplate使用Castl