LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
FileDestination.h
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 
3 /*
4  * LSST Data Management System
5  * Copyright 2008, 2009, 2010 LSST Corporation.
6  *
7  * This product includes software developed by the
8  * LSST Project (http://www.lsst.org/).
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the LSST License Statement and
21  * the GNU General Public License along with this program. If not,
22  * see <http://www.lsstcorp.org/LegalNotices/>.
23  */
24 
30 #ifndef LSST_PEX_FILEDESTINATION_H
31 #define LSST_PEX_FILEDESTINATION_H
32 
34 
35 #include <boost/filesystem/path.hpp>
36 #include <boost/filesystem/operations.hpp>
37 #include <fstream>
38 
39 namespace lsst {
40 namespace pex {
41 namespace logging {
42 
50 public:
51 
53 
64  FileDestination(const std::string& filepath,
65  const boost::shared_ptr<LogFormatter>& formatter,
66  int threshold=threshold::PASS_ALL,
67  bool truncate=false)
68  : LogDestination(new std::ofstream(filepath.c_str(),
69  truncate ? std::ios::out
70  : std::ios::app),
71  formatter, threshold),
72  _path(filepath)
73  { }
74  FileDestination(const char *filepath,
75  const boost::shared_ptr<LogFormatter>& formatter,
76  int threshold=threshold::PASS_ALL,
77  bool truncate=false)
78  : LogDestination(new std::ofstream(filepath,
79  truncate ? std::ios::out
80  : std::ios::app),
81  formatter, threshold),
82  _path(filepath)
83  { }
84  FileDestination(const boost::filesystem::path& filepath,
85  const boost::shared_ptr<LogFormatter>& formatter,
86  int threshold=threshold::PASS_ALL,
87  bool truncate=false)
88  : LogDestination(new std::ofstream(filepath.string().c_str(),
89  truncate ? std::ios::out
90  : std::ios::app),
91  formatter, threshold),
92  _path(filepath)
93  { }
95 
97 
110  FileDestination(const boost::filesystem::path& filepath, bool verbose=false,
111  int threshold=threshold::PASS_ALL, bool truncate=false);
112  FileDestination(const std::string& filepath, bool verbose=false,
113  int threshold=threshold::PASS_ALL, bool truncate=false);
114  FileDestination(const char *filepath, bool verbose=false,
115  int threshold=threshold::PASS_ALL, bool truncate=false);
117 
118  virtual ~FileDestination();
119 
120  const boost::filesystem::path& getPath() const { return _path; }
121 
122 protected:
123  boost::filesystem::path _path;
124 };
125 
126 }}} // end lsst::pex::logging
127 
128 #endif // LSST_PEX_LOGDESTINATION_H
FileDestination(const char *filepath, const boost::shared_ptr< LogFormatter > &formatter, int threshold=threshold::PASS_ALL, bool truncate=false)
Extent< int, N > truncate(Extent< double, N > const &input)
FileDestination(const boost::filesystem::path &filepath, const boost::shared_ptr< LogFormatter > &formatter, int threshold=threshold::PASS_ALL, bool truncate=false)
an encapsulation of a logging stream that will filter messages based on their volume (importance) lev...
const boost::filesystem::path & getPath() const
definition of the LogDestination class
a LogDestination represented by a file.
FileDestination(const std::string &filepath, const boost::shared_ptr< LogFormatter > &formatter, int threshold=threshold::PASS_ALL, bool truncate=false)