mirror of
https://github.com/GOSTSec/poolserver
synced 2025-01-15 01:00:10 +00:00
Improved server logging
This commit is contained in:
parent
50097be937
commit
a31dee09e0
@ -7,14 +7,12 @@ DataMgr* DataMgr::singleton = 0;
|
|||||||
|
|
||||||
void DataMgr::Upload()
|
void DataMgr::Upload()
|
||||||
{
|
{
|
||||||
sLog.Info(LOG_SERVER, "We have %u shares", Size());
|
sLog.Info(LOG_SERVER, "Uploading %u shares", Size());
|
||||||
|
|
||||||
uint32 bulkCount = sConfig.Get<uint32>("ShareUploadBulkCount");
|
uint32 bulkCount = sConfig.Get<uint32>("ShareUploadBulkCount");
|
||||||
|
|
||||||
while (Size() > sConfig.Get<uint32>("ShareUploadMinCount"))
|
while (Size() > sConfig.Get<uint32>("ShareUploadMinCount"))
|
||||||
{
|
{
|
||||||
sLog.Info(LOG_SERVER, "Uploading %u shares to database", Size());
|
|
||||||
|
|
||||||
std::string query("INSERT INTO `shares` (`rem_host`, `username`, `our_result`, `upstream_result`, `reason`, `time`, `difficulty`) VALUES ");
|
std::string query("INSERT INTO `shares` (`rem_host`, `username`, `our_result`, `upstream_result`, `reason`, `time`, `difficulty`) VALUES ");
|
||||||
for (int i = 0; i < bulkCount; ++i)
|
for (int i = 0; i < bulkCount; ++i)
|
||||||
{
|
{
|
||||||
|
@ -78,7 +78,7 @@ void NetworkMgr::UpdateBlockTemplate()
|
|||||||
// Set
|
// Set
|
||||||
_curBlockTmpl = block;
|
_curBlockTmpl = block;
|
||||||
|
|
||||||
sLog.Debug(LOG_SERVER, "Fetched block template from rpc #%u", i);
|
sLog.Info(LOG_SERVER, "Fetched block template from rpc #%u", i);
|
||||||
|
|
||||||
// Break from loop
|
// Break from loop
|
||||||
break;
|
break;
|
||||||
|
@ -90,7 +90,7 @@ namespace Stratum
|
|||||||
// check username
|
// check username
|
||||||
std::string username = params[0].GetString();
|
std::string username = params[0].GetString();
|
||||||
if (!_workers.count(username)) {
|
if (!_workers.count(username)) {
|
||||||
sLog.Error(LOG_STRATUM, "%s: Worker not authenticated", username.c_str());
|
sLog.Warn(LOG_STRATUM, "%s: Worker not authenticated", username.c_str());
|
||||||
JSON response;
|
JSON response;
|
||||||
response["id"] = msg["id"];
|
response["id"] = msg["id"];
|
||||||
response["result"];
|
response["result"];
|
||||||
@ -138,7 +138,7 @@ namespace Stratum
|
|||||||
|
|
||||||
BinaryData extranonce2 = Util::ASCIIToBin(params[2].GetString());
|
BinaryData extranonce2 = Util::ASCIIToBin(params[2].GetString());
|
||||||
if (extranonce2.size() != 4) {
|
if (extranonce2.size() != 4) {
|
||||||
sLog.Error(LOG_STRATUM, "Wrong extranonce size");
|
sLog.Warn(LOG_STRATUM, "Wrong extranonce size");
|
||||||
JSON response;
|
JSON response;
|
||||||
response["id"] = msg["id"];
|
response["id"] = msg["id"];
|
||||||
response["result"];
|
response["result"];
|
||||||
@ -151,7 +151,7 @@ namespace Stratum
|
|||||||
|
|
||||||
ByteBuffer timebuf(Util::Reverse(Util::ASCIIToBin(params[3].GetString())));
|
ByteBuffer timebuf(Util::Reverse(Util::ASCIIToBin(params[3].GetString())));
|
||||||
if (timebuf.Size() != 4) {
|
if (timebuf.Size() != 4) {
|
||||||
sLog.Error(LOG_STRATUM, "Wrong ntime size");
|
sLog.Warn(LOG_STRATUM, "Wrong ntime size");
|
||||||
JSON response;
|
JSON response;
|
||||||
response["id"] = msg["id"];
|
response["id"] = msg["id"];
|
||||||
response["result"];
|
response["result"];
|
||||||
@ -164,7 +164,7 @@ namespace Stratum
|
|||||||
|
|
||||||
ByteBuffer noncebuf(Util::Reverse(Util::ASCIIToBin(params[4].GetString())));
|
ByteBuffer noncebuf(Util::Reverse(Util::ASCIIToBin(params[4].GetString())));
|
||||||
if (noncebuf.Size() != 4) {
|
if (noncebuf.Size() != 4) {
|
||||||
sLog.Error(LOG_STRATUM, "Wrong nonce size");
|
sLog.Warn(LOG_STRATUM, "Wrong nonce size");
|
||||||
JSON response;
|
JSON response;
|
||||||
response["id"] = msg["id"];
|
response["id"] = msg["id"];
|
||||||
response["result"];
|
response["result"];
|
||||||
@ -180,9 +180,11 @@ namespace Stratum
|
|||||||
sharebuf << noncebuf << extranonce2;
|
sharebuf << noncebuf << extranonce2;
|
||||||
uint64 share;
|
uint64 share;
|
||||||
sharebuf >> share;
|
sharebuf >> share;
|
||||||
sLog.Debug(LOG_STRATUM, "Job::SubmitShare: Nonce: %s, Extranonse: %s, Share: %u", Util::BinToASCII(noncebuf.Binary()).c_str(), Util::BinToASCII(extranonce2).c_str(), share);
|
|
||||||
|
sLog.Debug(LOG_STRATUM, "Job::SubmitShare: Nonce: %s, Extranonce: %s, Share: %u", Util::BinToASCII(noncebuf.Binary()).c_str(), Util::BinToASCII(extranonce2).c_str(), share);
|
||||||
|
|
||||||
if (!job.SubmitShare(share)) {
|
if (!job.SubmitShare(share)) {
|
||||||
sLog.Error(LOG_STRATUM, "%s: Duplicate share", username.c_str());
|
sLog.Warn(LOG_STRATUM, "%s: Duplicate share", username.c_str());
|
||||||
DataMgr::Instance()->Push(Share(_ip, username, false, "Duplicate share", Util::Date(), job.diff));
|
DataMgr::Instance()->Push(Share(_ip, username, false, "Duplicate share", Util::Date(), job.diff));
|
||||||
_shareLimiter.LogBad();
|
_shareLimiter.LogBad();
|
||||||
|
|
||||||
@ -223,7 +225,7 @@ namespace Stratum
|
|||||||
|
|
||||||
// Check if difficulty meets job diff
|
// Check if difficulty meets job diff
|
||||||
if (target > job.jobTarget) {
|
if (target > job.jobTarget) {
|
||||||
sLog.Error(LOG_STRATUM, "%s: Share above target", username.c_str());
|
sLog.Warn(LOG_STRATUM, "%s: Share above target", username.c_str());
|
||||||
DataMgr::Instance()->Push(Share(_ip, username, false, "Share above target", Util::Date(), job.diff));
|
DataMgr::Instance()->Push(Share(_ip, username, false, "Share above target", Util::Date(), job.diff));
|
||||||
_shareLimiter.LogBad();
|
_shareLimiter.LogBad();
|
||||||
|
|
||||||
@ -239,7 +241,7 @@ namespace Stratum
|
|||||||
|
|
||||||
// Check if block meets criteria
|
// Check if block meets criteria
|
||||||
if (target <= job.blockTarget) {
|
if (target <= job.blockTarget) {
|
||||||
sLog.Info(LOG_SERVER, "We have found a block candidate!");
|
sLog.Info(LOG_STRATUM, "We have found a block candidate!");
|
||||||
|
|
||||||
if (_server->SubmitBlock(block)) {
|
if (_server->SubmitBlock(block)) {
|
||||||
std::string query("INSERT INTO `shares` (`rem_host`, `username`, `our_result`, `upstream_result`, `reason`, `solution`, `time`, `difficulty`) VALUES ");
|
std::string query("INSERT INTO `shares` (`rem_host`, `username`, `our_result`, `upstream_result`, `reason`, `solution`, `time`, `difficulty`) VALUES ");
|
||||||
@ -381,7 +383,7 @@ namespace Stratum
|
|||||||
try {
|
try {
|
||||||
OnMessage(JSON::FromString(_recvMessage));
|
OnMessage(JSON::FromString(_recvMessage));
|
||||||
} catch (std::exception& e) {
|
} catch (std::exception& e) {
|
||||||
sLog.Error(LOG_SERVER, "Exception caught while parsing json: %s", e.what());
|
sLog.Debug(LOG_STRATUM, "Exception caught while parsing json: %s", e.what());
|
||||||
}
|
}
|
||||||
|
|
||||||
_recvMessage.clear();
|
_recvMessage.clear();
|
||||||
|
@ -11,7 +11,7 @@ namespace Stratum
|
|||||||
|
|
||||||
_StartAccept();
|
_StartAccept();
|
||||||
|
|
||||||
sLog.Debug(LOG_STRATUM, "Stratum server started");
|
sLog.Info(LOG_STRATUM, "Stratum server started");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Server::SendToAll(JSON msg)
|
void Server::SendToAll(JSON msg)
|
||||||
|
@ -74,36 +74,38 @@ void Log::Write(LogLevel level, LogType type, std::string msg)
|
|||||||
{
|
{
|
||||||
boost::lock_guard<boost::mutex> lock(_mutex);
|
boost::lock_guard<boost::mutex> lock(_mutex);
|
||||||
|
|
||||||
|
std::string timestamp = Util::Date("%b-%d %H:%M:%S");
|
||||||
|
|
||||||
switch(level)
|
switch(level)
|
||||||
{
|
{
|
||||||
case LOG_LEVEL_ERROR:
|
case LOG_LEVEL_ERROR:
|
||||||
if (sConfig.Get<uint32_t>("LogConsoleLevel") >= level)
|
if (sConfig.Get<uint32_t>("LogConsoleLevel") >= level)
|
||||||
std::cout << "[ERROR] " << msg << std::endl;
|
std::cout << timestamp << " [ERROR] " << msg << std::endl;
|
||||||
if (sConfig.Get<uint32_t>("LogFileLevel") >= level)
|
if (sConfig.Get<uint32_t>("LogFileLevel") >= level)
|
||||||
AppendFile("[ERROR] " + msg);
|
AppendFile(timestamp + " [ERROR] " + msg);
|
||||||
break;
|
break;
|
||||||
case LOG_LEVEL_WARN:
|
case LOG_LEVEL_WARN:
|
||||||
if (sConfig.Get<uint32_t>("LogConsoleLevel") >= level)
|
if (sConfig.Get<uint32_t>("LogConsoleLevel") >= level)
|
||||||
std::cout << "[WARN] " << msg << std::endl;
|
std::cout << timestamp << " [WARN] " << msg << std::endl;
|
||||||
if (sConfig.Get<uint32_t>("LogFileLevel") >= level)
|
if (sConfig.Get<uint32_t>("LogFileLevel") >= level)
|
||||||
AppendFile("[WARN] " + msg);
|
AppendFile(timestamp + " [WARN] " + msg);
|
||||||
break;
|
break;
|
||||||
case LOG_LEVEL_INFO:
|
case LOG_LEVEL_INFO:
|
||||||
if (sConfig.Get<uint32_t>("LogConsoleLevel") >= level)
|
if (sConfig.Get<uint32_t>("LogConsoleLevel") >= level)
|
||||||
std::cout << "[INFO] " << msg << std::endl;
|
std::cout << timestamp << " [INFO] " << msg << std::endl;
|
||||||
if (sConfig.Get<uint32_t>("LogFileLevel") >= level)
|
if (sConfig.Get<uint32_t>("LogFileLevel") >= level)
|
||||||
AppendFile("[INFO] " + msg);
|
AppendFile(timestamp + " [INFO] " + msg);
|
||||||
break;
|
break;
|
||||||
case LOG_LEVEL_DEBUG:
|
case LOG_LEVEL_DEBUG:
|
||||||
if (sConfig.Get<uint32_t>("LogConsoleLevel") >= level) {
|
if (sConfig.Get<uint32_t>("LogConsoleLevel") >= level) {
|
||||||
uint32_t debugmask = sConfig.Get<uint32_t>("LogConsoleDebugMask");
|
uint32_t debugmask = sConfig.Get<uint32_t>("LogConsoleDebugMask");
|
||||||
if (debugmask & uint32_t(pow(2, type)))
|
if (debugmask & uint32_t(pow(2, type)))
|
||||||
std::cout << "[DEBUG] " << msg << std::endl;
|
std::cout << timestamp << " [DEBUG] " << msg << std::endl;
|
||||||
}
|
}
|
||||||
if (sConfig.Get<uint32_t>("LogFileLevel") >= level) {
|
if (sConfig.Get<uint32_t>("LogFileLevel") >= level) {
|
||||||
uint32_t debugmask = sConfig.Get<uint32_t>("LogFileDebugMask");
|
uint32_t debugmask = sConfig.Get<uint32_t>("LogFileDebugMask");
|
||||||
if (debugmask & uint32_t(pow(2, type)))
|
if (debugmask & uint32_t(pow(2, type)))
|
||||||
AppendFile("[DEBUG] " + msg);
|
AppendFile(timestamp + " [DEBUG] " + msg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user