Это ни в коем случае не оптимально, но для быстрых и грязных проверок с небольшими файлами журналов я использовал что-то вроде этого:
фрагмент кода, который будет считывать последние "n строк" из файла журнала. Я придумал следующий код из сети. Я немного новичок в C sharp. Поскольку файл журнала может быть довольно большим, я хочу избежать дополнительных затрат на чтение всего файла. Может кто-нибудь предложить какое-либо улучшение производительности. яне очень хочется читать каждый символ и изменить положение.
var reader = new StreamReader(filePath, Encoding.ASCII);
reader.BaseStream.Seek(0, SeekOrigin.End);
var count = 0;
while (count <= tailCount)
{
if (reader.BaseStream.Position <= 0) break;
reader.BaseStream.Position--;
int c = reader.Read();
if (reader.BaseStream.Position <= 0) break;
reader.BaseStream.Position--;
if (c == '\n')
{
++count;
}
}
var str = reader.ReadToEnd();