humanemulator.net — справка. Продукт, демо и покупка — на хуманэмулятор.рф | Демо | Купить | API | Changelog

getTotalLogCountFromSQLite

getTotalLogCountFromSQLite($startDateStr='',$endDateStr=''); - Get total count of log entries

Функция на вход принимает параметры:

  • $startDateStr – Start date period (format: dd.MM.yyyy)
  • $endDateStr – End date period (format: dd.MM.yyyy)

    После выполнения функции возвращаемое значение будет равно одному из двух :
  • число (Total count or -1 on error)
  • -1 – ошибка

    Пример использования
    <?php
    // Test: getTotalLogCountFromSQLite method
    
    $xhe_host = getenv("RPABOT_HOST_URL");
    if (!isset($path)){
      $path = "../../../Templates/init.php";
      require($path);
    }
    
    echo "\n<span >logger->" . basename(__FILE__) . "</span>\n";
    
    $dbPath = __DIR__ . "/logs/test_gettotallogcount.db";
    echo "\n";
    echo "Initializing logger with SQLite DB...\n";
    echo "Initializing logger with parameters:\n";
    $minLogLevel = LogLevel::DEBUG;
    echo "- Min Log Level: DEBUG (value: $minLogLevel)\n";
    $phpUseThroughShell = true;
    echo "- PHP Use Through Shell: " . ($phpUseThroughShell ? "true" : "false") . "\n";
    $writeLogToLogPanel = false;
    echo "- Write Log To Log Panel: " . ($writeLogToLogPanel ? "true" : "false") . "\n";
    $logFilePath = "";
    echo "- Log File Path: ''\n";
    $logSQLiteDbFilePath = $dbPath;
    echo "- Log SQLite DB Path: '$logSQLiteDbFilePath'\n";
    echo "- Date Time Format: d-M-yyyy HH:mm:ss (default)\n";
    echo "- Localization Code: en (default)\n";
    echo "- Need Text Transliteration: false (default)\n";
    SYSTEM::$logger->init($minLogLevel, $phpUseThroughShell, $writeLogToLogPanel, $logFilePath, $logSQLiteDbFilePath);
    echo "Logger initialized with SQLite DB: $dbPath\n";
    
    echo "\n\n";
    echo "Test: getTotalLogCountFromSQLite method:\n";
    
    $testData = (object) ['test_key' => 'test_value'];
    
    SYSTEM::$logger->info("Test message 1", $testData, 'count_total_test');
    SYSTEM::$logger->info("Test message 2", $testData, 'count_total_test');
    SYSTEM::$logger->info("Test message 3", $testData, 'count_total_test');
    SYSTEM::$logger->info("Test message 4", $testData, 'count_total_test');
    SYSTEM::$logger->info("Test message 5", $testData, 'count_total_test');
    
    sleep(1);
    
    $totalCountNoPeriod = SYSTEM::$logger->getTotalLogCountFromSQLite();
    echo "Тест #1. Total count (no period): $totalCountNoPeriod (expected: 5) " . (($totalCountNoPeriod !== null && $totalCountNoPeriod >= 5) ? "✓" : "✗") . "\n";
    
    $today = date('d.m.Y');
    $yesterday = date('d.m.Y', strtotime('-1 day'));
    
    $totalCountToday = SYSTEM::$logger->getTotalLogCountFromSQLite($today, $today);
    echo "Тест #2. Total count for today ($today): $totalCountToday (expected: 5) " . (($totalCountToday !== null && $totalCountToday >= 5) ? "✓" : "✗") . "\n";
    
    $totalCountYesterday = SYSTEM::$logger->getTotalLogCountFromSQLite($yesterday, $yesterday);
    echo "Тест #3. Total count for yesterday ($yesterday): $totalCountYesterday (expected: 0) " . (($totalCountYesterday !== null && $totalCountYesterday === 0) ? "✓" : "✗") . "\n";
    
    $lastWeek = date('d.m.Y', strtotime('-7 days'));
    $totalCountWeek = SYSTEM::$logger->getTotalLogCountFromSQLite($lastWeek, $today);
    echo "Тест #4. Total count for last 7 days: $totalCountWeek (expected: 5) " . (($totalCountWeek !== null && $totalCountWeek >= 5) ? "✓" : "✗") . "\n";
    
    echo "\n✓ Test completed successfully!\n";
    echo "\n";
    WINDOW::$app->quit();
    # Additional paths
    import sys
    sys.path.insert(0, '../../../Templates PY/')
    
    xhe_host = "127.0.0.1:7019"
    from xweb_human_emulator import *
    
    # start
    echo("<hr><font color=blue>logger.getTotalLogCountFromSQLite</font><hr>")
    
    echo("Initializing logger using SQLite for log storage: ")
    if logger.init(logSQLiteDbFilePath=debug.get_cur_script_folder() + "/logs/logger.db"):
    	echo("вњ“ Success\n\n")
    else:
    	echo("вњ— Failed\n\n")
    
    # 1
    echo("1. Getting total count of logs (without period): ")
    count = logger.getTotalLogCountFromSQLite()
    if count >= 0:
    	echo("вњ“ Success: total count - " + str(count) +"\n\n")
    else:
    	echo("вњ— Failed\n\n")
    
    # 2
    echo("2. Getting total count of logs for period (01.01.2024 - 31.12.2025): ")
    count = logger.getTotalLogCountFromSQLite("01.01.2024", "31.12.2025")
    if count >= 0:
    	echo("вњ“ Success: total count - " + str(count) +"\n\n")
    else:
    	echo("вњ— Failed\n\n")
    
    # 3
    echo("3. Getting total count of logs for short period: ")
    count = logger.getTotalLogCountFromSQLite("01.01.2024", "01.01.2024")
    if count >= 0:
    	echo("вњ“ Success: total count - " + str(count) +"\n\n")
    else:
    	echo("вњ— Failed\n\n")
    
    # end
    echo("\n")
    
    app.quit()
    #region using
    
    using System;
    using System.Diagnostics;
    using System.Collections.Generic;
    using System.Linq;
    using System.IO;
    using System.Text;
    using System.Threading;
    
    using XHE;
    using XHE.XHE_DOM;
    using XHE.XHE_System;
    using XHE.XHE_Window;
    using XHE.XHE_Web;
    
    #endregion
    
    class Program:XHEScript
    {
    	static void Main(string[] args)
    	{
    		server = Environment.GetEnvironmentVariable("RPABOT_HOST_URL");
    		InitXHE();
    
    		echo("<hr><font color=blue>logger.getTotalLogCountFromSQLite</font><hr>");
    
    		echo("0. Initialize logger: ");
    		bool initResult = logger.init(0, true, true, "", "test\\logger_test.db");
    		if(initResult)
    			echo("вњ“ Init successful<br>");
    		else
    			echo("вњ— Init failed<br>");
    
    		// 1 step
    		echo("\n1. Get total log count: ");
    		int count1 = logger.getTotalLogCountFromSQLite();
    		if(count1 >= 0)
    			echo("вњ“ Total logs: " + count1 + "<br>");
    		else
    			echo("вњ— Failed to get total log count<br>");
    
    		// 2 step
    		echo("\n2. Get total logs for current month: ");
    		string firstDay = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).ToString("dd.MM.yyyy");
    		string today = DateTime.Now.ToString("dd.MM.yyyy");
    		int count2 = logger.getTotalLogCountFromSQLite(firstDay, today);
    		if(count2 >= 0)
    			echo("вњ“ Logs for current month: " + count2 + "<br>");
    		else
    			echo("вњ— Failed to get logs for current month<br>");
    
    		// 3 step
    		echo("\n3. Get total logs for specific date range (last 7 days): ");
    		string weekAgo = DateTime.Now.AddDays(-7).ToString("dd.MM.yyyy");
    		int count3 = logger.getTotalLogCountFromSQLite(weekAgo, today);
    		if(count3 >= 0)
    			echo("вњ“ Logs for last 7 days: " + count3 + "<br>");
    		else
    			echo("вњ— Failed to get logs for last 7 days<br>");
    
    		// 4 step
    		echo("\n4. Get total logs without date filter: ");
    		int count4 = logger.getTotalLogCountFromSQLite("", "");
    		if(count4 >= 0)
    			echo("вњ“ Total logs without filter: " + count4 + "<br>");
    		else
    			echo("вњ— Failed to get total logs without filter<br>");
    
    		echo("\n\n");
    
    		app.quit();
    	}
    }
    const xhe_host = "127.0.0.1:7019";
    require("../../../Templates JS/init.js");
    const path = require("path");
    
    async function main()
    {
    	const dbPath = path.join(__dirname, "/logs/test_logger.db");
    	logger.init(1, true, true, "", dbPath, "d-m-Y H:i:s", "en", false, true);
    	
    	logger.addLogToSQLite(2, "Message 1", "{\"test\":\"data1\"}", "Caller1");
    	logger.addLogToSQLite(2, "Message 2", "{\"test\":\"data2\"}", "Caller2");
    	logger.addLogToSQLite(3, "Message 3", "{\"test\":\"data3\"}", "Caller3");
    	
    	let totalCount = logger.getTotalLogCountFromSQLite("", "");
    	if (totalCount >= 3)
    		console.log("вњ“ Test 1: Get total log count without period filter - PASSED");
    	else
    		console.log("вњ— Test 1: Get total log count without period filter - FAILED");
    	
    	totalCount = logger.getTotalLogCountFromSQLite("01.01.2020", "31.12.2030");
    	if (totalCount >= 0)
    		console.log("вњ“ Test 2: Get total log count with period filter - PASSED");
    	else
    		console.log("вњ— Test 2: Get total log count with period filter - FAILED");
    	
    	logger.addLogToSQLite(1, "Debug message", "{\"debug\":\"data\"}", "Caller4");
    	logger.addLogToSQLite(4, "Error message", "{\"error\":\"data\"}", "Caller5");
    	totalCount = logger.getTotalLogCountFromSQLite("", "");
    	if (totalCount >= 5)
    		console.log("вњ“ Test 3: Get total log count after adding more logs - PASSED");
    	else
    		console.log("вњ— Test 3: Get total log count after adding more logs - FAILED");
    	
    	totalCount = logger.getTotalLogCountFromSQLite("01.01.1900", "01.01.2000");
    	if (totalCount >= 0)
    		console.log("вњ“ Test 4: Get total log count with empty period - PASSED");
    	else
    		console.log("вњ— Test 4: Get total log count with empty period - FAILED");
    }
    
    main();

    =============================================
    logger    Объекты    DOM  System  Vision  Web  Window        
    =============================================
    если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
    .