Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 11.01.2020
Сообщений: 58
1

Как вывести корректно данные?

02.08.2020, 19:01. Просмотров 106. Ответов 0
Метки нет (Все метки)

вопрос такой. Мне надо написать логер, который выводит данные откуда он вызывался. собственно, я это сделал.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public static /*async*/ void Info(string message,
            [System.Runtime.CompilerServices.CallerLineNumber] int sourceLineNumber = 0)
        {
            try
            {
                DateTime now = DateTime.Now;
                var m = (new StackTrace()).GetFrame(1)?.GetMethod();
                using (var file = new FileStream(@$"{_path}\log {now:d}_[{_count}].txt", FileMode.Append))
                {
                    if (file.Length <= SizeFile)
                    {
                        WriteData(file, message, m, sourceLineNumber);
                    }
                    else
                    {
                        _count++;
                        using (var newFile = new FileStream(@$"{_path}\log {now:d}_[{_count}].txt", FileMode.Append))
                        {
                            WriteData(file, message, m, sourceLineNumber);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private static void WriteData(FileStream file, string message, MethodBase method, 
            [System.Runtime.CompilerServices.CallerLineNumber] int sourceLineNumber = 0,
            [System.Runtime.CompilerServices.CallerMemberName] string memberName = "")
        {
            DateTime now = DateTime.Now;
 
            var array1 = Encoding.Default.GetBytes($"{now:G} ");
            var array2 = Encoding.Default.GetBytes($"|{memberName}| ");
            var array3 = Encoding.Default.GetBytes($"|{method?.DeclaringType?.FullName}.{method?.Name}| ");
            var array4 = Encoding.Default.GetBytes($"|{sourceLineNumber}| ");
            var array5 = Encoding.Default.GetBytes($"{message}\n");
 
            file.Write(array1, 0, array1.Length);
            file.Write(array2, 0, array2.Length);
            file.Write(array3, 0, array3.Length);
            file.Write(array4, 0, array4.Length);
            file.Write(array5, 0, array5.Length);
        }
вот результат вывода, как пример
C#
1
2
3
4
5
02.08.2020 15:46:44 |Info| |CheckList.Program.Main| |16| Start program.
02.08.2020 15:46:51 |Info| |DataBase.Models.Repositories.ProductRepositories.OpenDb| |203| Connecting to the database.
02.08.2020 15:46:52 |Info| |DataBase.Models.Repositories.ProductRepositories.GetDataByTask| |92| Reading data...
02.08.2020 15:46:52 |Info| |DataBase.Models.Repositories.ProductRepositories.CloseDb| |217| Database closed.
02.08.2020 15:46:57 |Info| |CheckList.Program.Main| |57| Finish program
НО, если я делаю метод асинхронным, то выводит совсем другие данные. Пример:
C#
1
2
3
4
5
02.08.2020 10:33:32 |Info| |System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start| |16| Start program.
02.08.2020 10:33:34 |Info| |System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start| |122| Input login and password for the user.
02.08.2020 10:33:37 |Info| |System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start| |32| Create a password.
02.08.2020 10:33:48 |Info| |System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start| |176| Connecting to the database.
02.08.2020 10:33:48 |Info| |System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start| |190| Database closed.
Как это пофиксить???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2020, 19:01
Ответы с готовыми решениями:

Как корректно вывести из цикла данные
Имеется следующий код. Он разбирает XML-файл, и в цикле выводит все значения одного узла. Но не...

Как корректно передать данные?
если я создаю собственный класс, а в нем есть обработчик события, происходящий в этом классе....

Как преобразовать данные из Textbox в String корректно
Здравствуйте, пишу простенькую программу которая берет адрес сайта из textbox и по нажатию кнопки...

Как корректно вывести в listview массив размерностью n×n
начинаю изучать С#.Подскажите, как корректно вывести в listview на c# массив размерностью...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.08.2020, 19:01

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Sqlite (Between не корректно выводит данные)
sqlQuery = string.Format(&quot;SELECT * FROM Catalog WHERE( BETWEEN '{1}' AND...

Как корректно вывести данные (циклы)
помогите корректно вывести данные в таблицу. имеется массив $Posledovatelnost содержит например ...

Корректно вывести данные из скрипта
Имеется скрипт оконного калькулятора. Не корректно выводит эскиз окна на печать. в яве прописано...

При клике на див вывести корректно данные из массива
Есть задача: Какие ошибки вы видите в коде и как их можно исправить? Необходимо достигнуть...

Как корректно извлечь данные?
Здравствуйте. Разрабатываю приложение в среде VS, язык С#, встраиваемая база данных Firebird...

Как корректно вручную ввести данные
Как реализовать ручной ввод в данной программе? (Задание: вставить заданный пользователем элемент Е...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.