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

📄 logrotate.hpp

📁 ncbi源码
💻 HPP
字号:
/* * =========================================================================== * PRODUCTION $Log: logrotate.hpp,v $ * PRODUCTION Revision 1000.1  2004/05/04 18:26:35  gouriano * PRODUCTION PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.6 * PRODUCTION * =========================================================================== */#ifndef UTIL___LOGROTATE__HPP#define UTIL___LOGROTATE__HPP/*  $Id: logrotate.hpp,v 1000.1 2004/05/04 18:26:35 gouriano Exp $* ===========================================================================**                            PUBLIC DOMAIN NOTICE*               National Center for Biotechnology Information**  This software/database is a "United States Government Work" under the*  terms of the United States Copyright Act.  It was written as part of*  the author's official duties as a United States Government employee and*  thus cannot be copyrighted.  This software/database is freely available*  to the public for use. The National Library of Medicine and the U.S.*  Government have not placed any restriction on its use or reproduction.**  Although all reasonable efforts have been taken to ensure the accuracy*  and reliability of the software and data, the NLM and the U.S.*  Government do not and cannot warrant the performance or results that*  may be obtained by using this software or data. The NLM and the U.S.*  Government disclaim all warranties, express or implied, including*  warranties of performance, merchantability or fitness for any particular*  purpose.**  Please cite the author in any work or product based on this material.** ===========================================================================** Author:  Aaron Ucko, NCBI** File Description:*   File streams supporting log rotation**/#include <corelib/ncbistd.hpp>/** @addtogroup RotatingLog * * @{ */BEGIN_NCBI_SCOPEclass CRotatingLogStream;class NCBI_XUTIL_EXPORT CRotatingLogStreamBuf : public CNcbiFilebuf {public:    CRotatingLogStreamBuf(CRotatingLogStream* stream, const string& filename,                          CT_OFF_TYPE limit, IOS_BASE::openmode mode);    void Rotate(void);protected:    virtual CT_INT_TYPE overflow(CT_INT_TYPE c = CT_EOF);    virtual int sync(void);private:    CRotatingLogStream* m_Stream;    string              m_FileName;    CT_POS_TYPE         m_Size;    CT_OFF_TYPE         m_Limit; // in bytes    IOS_BASE::openmode  m_Mode;};class NCBI_XUTIL_EXPORT CRotatingLogStream : public CNcbiOstream {public:    // limit is approximate; the actual length may exceed it by a buffer's    // worth of characters.    CRotatingLogStream(const string& filename, CT_OFF_TYPE limit,                       openmode mode = app | ate | out)        : CNcbiOstream(new CRotatingLogStreamBuf(this, filename, limit, mode))        { }    virtual ~CRotatingLogStream(void)        { delete rdbuf(); }    // Users may call this explicitly to rotate on some basis other    // than size (such as time since last rotation or a signal from    // some external process).    void Rotate(void)        { flush(); dynamic_cast<CRotatingLogStreamBuf*>(rdbuf())->Rotate(); }protected:    // Specifies how to rename old logs.  Returning an empty string    // indicates that any appropriate renaming has already occurred,    // for instance because this method took care of it directly or    // because some other program rotated the logs for us and asked us    // to switch to a new file (traditionally, by sending SIGHUP).    // Changing "name" is also legitimate, and indicates that the NEW    // logs should have a different name.    // The default behavior is to append a timestamp to name.    virtual string x_BackupName(string& name);    friend class CRotatingLogStreamBuf;};END_NCBI_SCOPE/* @} *//** ===========================================================================** $Log: logrotate.hpp,v $* Revision 1000.1  2004/05/04 18:26:35  gouriano* PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.6** Revision 1.6  2004/02/19 22:57:53  ucko* Accommodate stricter implementations of CT_POS_TYPE.** Revision 1.5  2003/04/17 17:50:21  siyan* Added doxygen support** Revision 1.4  2003/02/12 16:41:04  ucko* Always supply CRotatingLogStreamBuf::sync, and avoid double-counting* via run-time rather than compile-time logic.** Revision 1.3  2002/12/19 14:51:00  dicuccio* Added export specifier for Win32 DLL builds.** Revision 1.2  2002/11/25 19:19:13  ucko* Adjust CRotatingLogStream's constructor to compile under GCC 3, and* generally be slightly more efficient.* Remember to clean up the buffer in its destructor.** Revision 1.1  2002/11/25 17:20:59  ucko* Add support for automatic log rotation (CRotatingLogStream)*** ===========================================================================*/#endif  /* UTIL___LOGROTATE__HPP */

⌨️ 快捷键说明

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