Index: src/common/TLogSink.cpp
===================================================================
diff -u -r62d767936f1675e1db51174f53c91484fe691937 -rb8b97b70743c49fcc2aee0db4cb7118db5e26dab
--- src/common/TLogSink.cpp	(.../TLogSink.cpp)	(revision 62d767936f1675e1db51174f53c91484fe691937)
+++ src/common/TLogSink.cpp	(.../TLogSink.cpp)	(revision b8b97b70743c49fcc2aee0db4cb7118db5e26dab)
@@ -32,10 +32,16 @@
 		if (m_handleFile != INVALID_HANDLE_VALUE)
 			return m_handleFile;
 
-		m_handleFile = CreateFile(m_pathLog.ToString(), GENERIC_WRITE, FILE_SHARE_WRITE, nullptr, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr);
+		m_handleFile = CreateFile(m_pathLog.ToString(), GENERIC_WRITE, FILE_SHARE_READ, nullptr, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, nullptr);
 		if (m_handleFile == INVALID_HANDLE_VALUE)
 			throw TFileException(eErr_CannotOpenFile, GetLastError(), m_pathLog, L"Cannot open log file", LOCATION);
 
+		LARGE_INTEGER liSeek = { 0 };
+
+		BOOL bRes = SetFilePointerEx(m_handleFile, liSeek, nullptr, SEEK_END);
+		if (!bRes)
+			throw TFileException(eErr_CannotOpenFile, GetLastError(), m_pathLog, L"Cannot seek to the end of log file", LOCATION);
+
 		return m_handleFile;
 	}