mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	Modified the behavior when the log file was deleted manually.
This commit is contained in:
		@@ -538,50 +538,55 @@ BOOL LSLog(int nLevel, LPCTSTR pszModule, LPCTSTR pszMessage)
 | 
			
		||||
	// The stub implementation
 | 
			
		||||
	if (Rainmeter && Rainmeter->GetLogging())
 | 
			
		||||
	{
 | 
			
		||||
		FILE* logFile;
 | 
			
		||||
		std::wstring logfile = Rainmeter->GetLogFile();
 | 
			
		||||
		if (logFound == 0)
 | 
			
		||||
		{
 | 
			
		||||
			// Check if the file exists
 | 
			
		||||
			logFile = _wfopen(logfile.c_str(), L"r");
 | 
			
		||||
			if (logFile)
 | 
			
		||||
			if (_waccess(logfile.c_str(), 0) != -1)
 | 
			
		||||
			{
 | 
			
		||||
				logFound = 1;
 | 
			
		||||
				fclose(logFile);
 | 
			
		||||
 | 
			
		||||
				// Clear the file
 | 
			
		||||
				logFile = _wfopen(logfile.c_str(), L"w");
 | 
			
		||||
				FILE* logFile = _wfopen(logfile.c_str(), L"w");
 | 
			
		||||
				fclose(logFile);
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				logFound = 2;
 | 
			
		||||
				logFound = 2;  // not found
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (logFound == 1)
 | 
			
		||||
		{
 | 
			
		||||
			logFile = _wfopen(logfile.c_str(), L"a+, ccs=UTF-8");
 | 
			
		||||
			if (logFile)
 | 
			
		||||
			if (_waccess(logfile.c_str(), 0) == -1)
 | 
			
		||||
			{
 | 
			
		||||
				switch(nLevel)
 | 
			
		||||
				// Disable logging if the file was deleted manually
 | 
			
		||||
				Rainmeter->StopLogging();
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				FILE* logFile = _wfopen(logfile.c_str(), L"a+, ccs=UTF-8");
 | 
			
		||||
				if (logFile)
 | 
			
		||||
				{
 | 
			
		||||
				case 1:
 | 
			
		||||
					fputws(L"ERROR: ", logFile);
 | 
			
		||||
					break;
 | 
			
		||||
				case 2:
 | 
			
		||||
					fputws(L"WARNING: ", logFile);
 | 
			
		||||
					break;
 | 
			
		||||
				case 3:
 | 
			
		||||
					fputws(L"NOTICE: ", logFile);
 | 
			
		||||
					break;
 | 
			
		||||
				case 4:
 | 
			
		||||
					fputws(L"DEBUG: ", logFile);
 | 
			
		||||
					break;
 | 
			
		||||
					switch(nLevel)
 | 
			
		||||
					{
 | 
			
		||||
					case 1:
 | 
			
		||||
						fputws(L"ERROR: ", logFile);
 | 
			
		||||
						break;
 | 
			
		||||
					case 2:
 | 
			
		||||
						fputws(L"WARNING: ", logFile);
 | 
			
		||||
						break;
 | 
			
		||||
					case 3:
 | 
			
		||||
						fputws(L"NOTICE: ", logFile);
 | 
			
		||||
						break;
 | 
			
		||||
					case 4:
 | 
			
		||||
						fputws(L"DEBUG: ", logFile);
 | 
			
		||||
						break;
 | 
			
		||||
					}
 | 
			
		||||
					fputws(message.c_str(), logFile);
 | 
			
		||||
					fputws(L"\n", logFile);
 | 
			
		||||
					fclose(logFile);
 | 
			
		||||
				}
 | 
			
		||||
				fputws(message.c_str(), logFile);
 | 
			
		||||
				fputws(L"\n", logFile);
 | 
			
		||||
				fclose(logFile);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user