⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 log.cpp

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 CPP
字号:
/* log.cpp * * Copyright (C) 2003 Sawtooth Consulting Ltd. * * This file is part of yaSSL. * * yaSSL is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * yaSSL is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA *//*  Debug logging functions */#include "runtime.hpp"#include "log.hpp"#ifdef YASSL_LOG    #include <time.h>    #include <stdio.h>    #include <string.h>#endifnamespace yaSSL {#ifdef YASSL_LOG    enum { MAX_MSG = 81 };    Log::Log(const char* str)    {        log_ = fopen(str, "w");        Trace("********** Logger Attached **********");    }    Log::~Log()    {        Trace("********** Logger Detached **********");        fclose(log_);    }    // Trace a message    void Log::Trace(const char* str)    {        if (!log_) return;        time_t clicks = time(0);        char   timeStr[32];        // get rid of newline        strncpy(timeStr, ctime(&clicks), sizeof(timeStr));        unsigned int len = strlen(timeStr);        timeStr[len - 1] = 0;        char msg[MAX_MSG];        strncpy(msg, timeStr, sizeof(timeStr));        strncat(msg, ":", 1);        strncat(msg, str, MAX_MSG - sizeof(timeStr) - 2);        strncat(msg, "\n", 1);        msg[MAX_MSG - 1] = 0;        fputs(msg, log_);    }    #if defined(_WIN32) || defined(__MACH__) || defined(__hpux__)        typedef int socklen_t;    #endif    // write tcp address    void Log::ShowTCP(socket_t fd, bool ended)    {        sockaddr_in peeraddr;        socklen_t   len = sizeof(peeraddr);        if (getpeername(fd, (sockaddr*)&peeraddr, &len) != 0)            return;        const char* p = reinterpret_cast<const char*>(&peeraddr.sin_addr);        char msg[MAX_MSG];        char number[16];            if (ended)            strncpy(msg, "yaSSL conn DONE  w/ peer ", 26);        else            strncpy(msg, "yaSSL conn BEGUN w/ peer ", 26);        for (int i = 0; i < 4; ++i) {            sprintf(number, "%u", static_cast<unsigned short>(p[i]));            strncat(msg, number, 8);            if (i < 3)                strncat(msg, ".", 1);        }        strncat(msg, " port ", 8);        sprintf(number, "%d", htons(peeraddr.sin_port));        strncat(msg, number, 8);        msg[MAX_MSG - 1] = 0;        Trace(msg);    }    // log processed data    void Log::ShowData(uint bytes, bool sent)    {        char msg[MAX_MSG];        char number[16];        if (sent)            strncpy(msg, "Sent     ", 10);         else            strncpy(msg, "Received ", 10);        sprintf(number, "%u", bytes);        strncat(msg, number, 8);        strncat(msg, " bytes of application data", 27);        msg[MAX_MSG - 1] = 0;        Trace(msg);    }#else // no YASSL_LOG    Log::Log(const char*) {}    Log::~Log() {}    void Log::Trace(const char*) {}    void Log::ShowTCP(socket_t, bool) {}    void Log::ShowData(uint, bool) {}#endif // YASSL_LOG} // namespace

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -