mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
add srs_log_file to write log to file. change to 0.9.27
This commit is contained in:
parent
4ddb5256ac
commit
d94b9f44b3
10 changed files with 76 additions and 10 deletions
|
@ -684,6 +684,11 @@ int SrsConfig::parse_file(const char* filename)
|
|||
// TODO: check http.
|
||||
// TODO: check pid.
|
||||
|
||||
std::string filename = this->get_srs_log_file();
|
||||
if (!filename.empty()) {
|
||||
srs_trace("open log file %s and write to", filename.c_str());
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -1253,11 +1258,11 @@ string SrsConfig::get_engine_output(SrsConfDirective* engine)
|
|||
return conf->arg0();
|
||||
}
|
||||
|
||||
string SrsConfig::get_log_dir()
|
||||
string SrsConfig::get_ffmpeg_log_dir()
|
||||
{
|
||||
srs_assert(root);
|
||||
|
||||
SrsConfDirective* conf = root->get("log_dir");
|
||||
SrsConfDirective* conf = root->get("ff_log_dir");
|
||||
if (!conf || conf->arg0().empty()) {
|
||||
return "./objs/logs";
|
||||
}
|
||||
|
@ -1265,6 +1270,18 @@ string SrsConfig::get_log_dir()
|
|||
return conf->arg0();
|
||||
}
|
||||
|
||||
string SrsConfig::get_srs_log_file()
|
||||
{
|
||||
srs_assert(root);
|
||||
|
||||
SrsConfDirective* conf = root->get("srs_log_file");
|
||||
if (!conf || conf->arg0().empty()) {
|
||||
return "";
|
||||
}
|
||||
|
||||
return conf->arg0();
|
||||
}
|
||||
|
||||
int SrsConfig::get_max_connections()
|
||||
{
|
||||
srs_assert(root);
|
||||
|
|
|
@ -147,7 +147,8 @@ public:
|
|||
virtual int get_engine_achannels(SrsConfDirective* engine);
|
||||
virtual void get_engine_aparams(SrsConfDirective* engine, std::vector<std::string>& aparams);
|
||||
virtual std::string get_engine_output(SrsConfDirective* engine);
|
||||
virtual std::string get_log_dir();
|
||||
virtual std::string get_ffmpeg_log_dir();
|
||||
virtual std::string get_srs_log_file();
|
||||
virtual int get_max_connections();
|
||||
virtual bool get_gop_cache(std::string vhost);
|
||||
virtual double get_queue_length(std::string vhost);
|
||||
|
|
|
@ -118,7 +118,7 @@ int SrsFFMPEG::initialize(SrsRequest* req, SrsConfDirective* engine)
|
|||
output = srs_replace(output, "[engine]", engine->arg0());
|
||||
|
||||
// write ffmpeg info to log file.
|
||||
log_file = _srs_config->get_log_dir();
|
||||
log_file = _srs_config->get_ffmpeg_log_dir();
|
||||
log_file += "/";
|
||||
log_file += "encoder";
|
||||
log_file += "-";
|
||||
|
|
|
@ -26,6 +26,12 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include <stdarg.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include <srs_app_config.hpp>
|
||||
|
||||
SrsThreadContext::SrsThreadContext()
|
||||
{
|
||||
}
|
||||
|
@ -57,11 +63,18 @@ SrsFastLog::SrsFastLog()
|
|||
{
|
||||
level = SrsLogLevel::Trace;
|
||||
log_data = new char[LOG_MAX_SIZE];
|
||||
|
||||
fd = -1;
|
||||
}
|
||||
|
||||
SrsFastLog::~SrsFastLog()
|
||||
{
|
||||
srs_freepa(log_data);
|
||||
|
||||
if (fd > 0) {
|
||||
::close(fd);
|
||||
fd = -1;
|
||||
}
|
||||
}
|
||||
|
||||
void SrsFastLog::verbose(const char* tag, int context_id, const char* fmt, ...)
|
||||
|
@ -229,4 +242,24 @@ void SrsFastLog::write_log(char *str_log, int size, int _level)
|
|||
} else{
|
||||
printf("\033[31m%s\033[0m", str_log);
|
||||
}
|
||||
|
||||
// if specified log file, write log to it.
|
||||
if (!_srs_config->get_srs_log_file().empty()) {
|
||||
if (fd < 0) {
|
||||
std::string filename = _srs_config->get_srs_log_file();
|
||||
|
||||
fd = ::open(filename.c_str(), O_RDWR | O_APPEND);
|
||||
|
||||
if(fd == -1 && errno == ENOENT) {
|
||||
fd = open(filename.c_str(),
|
||||
O_RDWR | O_CREAT | O_TRUNC,
|
||||
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (fd > 0) {
|
||||
::write(fd, str_log, size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,6 +80,8 @@ private:
|
|||
// defined in SrsLogLevel.
|
||||
int level;
|
||||
char* log_data;
|
||||
// log to file if specified srs_log_file
|
||||
int fd;
|
||||
public:
|
||||
SrsFastLog();
|
||||
virtual ~SrsFastLog();
|
||||
|
|
|
@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
// current release version
|
||||
#define VERSION_MAJOR "0"
|
||||
#define VERSION_MINOR "9"
|
||||
#define VERSION_REVISION "26"
|
||||
#define VERSION_REVISION "27"
|
||||
#define RTMP_SIG_SRS_VERSION VERSION_MAJOR"."VERSION_MINOR"."VERSION_REVISION
|
||||
// server info.
|
||||
#define RTMP_SIG_SRS_KEY "srs"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue