powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Логирование
1 сообщений из 1, страница 1 из 1
Логирование
    #39242135
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот наткнулся на код где все подряд логируется, ну типа везде пишется в лог параметр/переменная - значение. Писать утомительно, чревато ошибками, в случае чего менять придется кучу кода в куче мест.
Что скажите, так не круче?
Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
   static string MyLog(params Expression<Func<object>>[] args)
        {
            StringBuilder sb = new StringBuilder();
            foreach (var p in args)
            {
                if (p == null)
                    continue;
                var value = p as System.Linq.Expressions.LambdaExpression;
                var b = value?.Body as MemberExpression;
                if (b != null)
                {
                    var tmp = b.Expression as ConstantExpression;
                    sb.Append($"{b.Member.Name} {p.Compile()()};\t");
                }
                else
                {
                    var c = value?.Body as UnaryExpression;
                    if(c!=null && c.NodeType == ExpressionType.Convert)
                    {
                        sb.Append($"{(c.Operand as MemberExpression)?.Member.Name} {p.Compile()()};\t");
                    }
                }
            }
            return sb.ToString();
        }
 static void Test(string s, int i, object obj)
        {
            var st = "sdfsdfgsdfg";
            var str = MyLog(() => s, () => i, () => obj, () => st);
            Console.WriteLine(str);
        }
 static void Main(string[] args)
        {
            Test("wertwert", 12342134, null);
            Console.ReadLine();
        }


Можно конечно прилизать, но идея понятна.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Логирование
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]