1. 程式人生 > >記錄操作日誌

記錄操作日誌

在建構函式中使用註冊一個會在php中止時執行的函式register_shutdown_function(), TP5框架中使用

$request = \think\Request::instance();
        if ($request->controller() == "School" && $request->action() == "schoolarc") {
            register_shutdown_function(function() {
                BM('Errorlog')->uploadLog();
            });
        }

<?php
use think\Db;
class Errorlog{

    /**
     * [getDeviceType 獲取途徑]
     * Fri 2017/12/8
     */
    public function getDeviceType()
    {
        $_return = '';
        if(!isset($_SERVER['HTTP_USER_AGENT'])) return 'other';
        if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')||strpos($_SERVER['HTTP_USER_AGENT'], 'iPad')){
            $_return = 'IOS';
        }else if(strpos($_SERVER['HTTP_USER_AGENT'], 'Android')){
            $_return = 'Android';
        }else{
            $_return = 'other';
        }
        return $_return;
    }

    /**
     * [ClientIp 獲取ip地址]
     * Fri 2017/12/8
     */
    public function ClientIp()
    {
        return isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'unknown' ;
    }

    /**
     * [uploadLog 上傳錯誤日誌]
     * Fri 2017/12/8
     */
    public function uploadLog()
    {
        global $GLOBALS;
        
        $err_data = [
            'ip' => $this->ClientIp(),
            'user_agent' => $this->getDeviceType(),
            'user_name' => $GLOBALS['user_name'],
            'description' => $GLOBALS['error'],
            'is_success' => ($GLOBALS['error'] == "上傳成功") ? 1: 0,
            'update_time' => time(),
        ];


        //file_put_contents("a.txt", var_export($err_data, true));

        Db::table('upload_log')->insert($err_data);
    }
}

相關推薦

ThreadLocal 在記錄操作日誌中的應用

boolean bsp cti @override long med span 字段 中文   ThreadLocal,很多地方叫做線程本地變量,也有些地方叫做線程本地存儲,其實意思差不多。可能很多朋友都知道ThreadLocal為變量在每個線程中都創建了一個副本,那麽每

salt-api return mysql返回的使用,記錄操作日誌

需要 操作日誌 tab pre node var nac incr day 說在前面 折騰這個搞了半天,現做下記錄 安裝依賴(操作只在master端) yum install mysql-python or pip install mysql-python master

用AOP記錄操作日誌,並寫進資料庫。

先用AOP註解 1 package com.vlandc.oss.apigate.log.aspect; 2 3 import java.util.Map; 4 import java.util.Optional; 5 6 import javax.servlet.http.H

Spring Boot 使用AOP記錄操作日誌

前言 在寫Aurora這個專案之前,我是通過攔截器去記錄使用者操作日誌,而這裡講解如何使用AOP配合自定義註解去實現使用者日誌記錄,使用攔截器的方式,下一章貼出 匯入依賴 <!-- aop依賴 --> <dependency> &

aop+註解 記錄操作日誌

自定義註解: @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface OperateHis { int operateType() default 0; }

基於SSM利用SpringAOP切面及自定義註解 記錄每次操作記錄(操作日誌 同理)

前段時間根據業務需求要記錄每次操作時的相關資訊:本帖方式通過在SpringMVC中的Controller設定一個自定義註解類來進行對資料的接收,通過 SpringAOP切面來對接收的資料進行邏輯處理. 在事先根據業務需求建立的一個實體類(如: UploadCount)的基礎

Spring AOP 自定義註解記錄操作日誌

1.自定義註釋 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Inherited public @interface Log { LogType type() default Lo

記錄操作日誌

在建構函式中使用註冊一個會在php中止時執行的函式register_shutdown_function(), TP5框架中使用 $request = \think\Request::instance(

SpringAOP註解方式記錄操作日誌(操作模組,操作功能,呼叫方法,主鍵資訊等)支援多筆操作記錄

使用AOP切入的方式記錄操作日誌,本程式碼主要採用列舉作為記錄方式,具體程式碼如下. 首先先定義先關列舉: /** * 列舉公共介面 * @author LeiYong * */ public interface EnumSuper { /** * 獲取值

spring-boot-route(十七)使用aop記錄操作日誌

在上一章內容中——[使用logback管理日誌](https://mp.weixin.qq.com/s/2AJSkcoUpXLXnkCV8AFfRw),我們詳細講述瞭如何將日誌生成檔案進行儲存。但是在實際開發中,使用檔案儲存日誌用來快速查詢問題並不是最方便的,一個優秀系統除了日誌檔案還需要將操作日誌進行持久化

linux 記錄用戶操作日誌

inux 用戶 fin else size sky dba linux sed history USER_IP=`who -u am i 2>/dev/null| awk ‘{print $NF}‘|sed -e ‘s/[()]//g‘` if [ "$USER

Spring_AOP 記錄系統關鍵操作日誌用法

解決 ati rgs pad tope reads 匿名 ava syslog 問題:   系統需要記錄用戶的關鍵操作日誌,以便後期的系統維護,方便的查看問題,及時排除 分析:   (1)保存字段:作為一個日誌記錄功能,首先數據庫新建一張表保存用戶的操作關鍵字段,   

AWS學習筆記(五)--啟用CloudTrail記錄AWS 賬戶操作日誌

subscript 登錄 urn latest 學習 cif trail 文件 all AWS 賬戶的操作日誌去哪裏查看?默認是沒有記錄的,需要啟用CloudTrail才能記錄日誌。啟用CloudTrail非常簡單,可以使用AWS CloudTrail Console或AW

springboot—spring aop 實現系統操作日誌記錄存儲到數據庫

work prop 請求 pack spa 成功 方法 代碼 shu 原文:https://www.jianshu.com/p/d0bbdf1974bd 采用方案: 使用spring 的 aop 技術切到自定義註解上,針對不同註解標誌進行參數解析,記錄日誌

使用Spring AOP自定義註解方式實現使用者操作日誌記錄

1,開發環境 作業系統:Windows 7 JDK:1.8.0_161 Eclipse:Mars.2 Release (4.5.2) 2,自定義註解類UserLog @Target({ElementType.PARAMETER, ElementType.METHOD}) @R

MySQL記錄使用者操作日誌

有時,我們想追蹤某個資料庫操作記錄,如想找出是誰操作了某個表(比如誰將欄位名改了)。 二進位制日誌記錄了操作記錄,執行緒號等資訊,但是卻沒有記錄使用者資訊,因此需要結合init-connect來實現追蹤。 init-connect,在每次連線的初始化階段,記錄下這個連線的使用者,和conne

Springboot 如何使用AOP同時織入多個切面?實現使用者 操作日誌記錄功能

首先匯入AOP的pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta

springmvc+log4j操作日誌記錄,詳細配置

需要匯入包:  log包:log4j-12.17.jar 第一步:web.xml配置 <!-- log4j配置,檔案路徑,因為是跟隨專案啟動 --> <context-param> <param-name>

關於系統記錄使用者操作日誌及物件變更問題

mysql匯入出錯懷疑是特殊字元導致一道白光回到白雲城看看經驗149級54的經驗只要能找到類似的精英怪聚集點相信一天時間就能升到150級到時候裝備上我的仙器烈魂劍哈哈哈簡直拉風到了極點啊mysql匯入出錯懷疑是特殊字元導

自定義註解+Spring AOP實現記錄使用者操作日誌

一、背景     專案中需要對使用者的各種操作做詳細的操作日誌記錄,需要記錄使用者操作的操作模組、具體操作以及操作的資料記錄ID等。     若寫一個方法去儲存操作,則需要每次手動去呼叫。由於是非業務性的操作,並且大量的重複操作,Spring AOP就能很好的解決這個問題。