
    Новые сообщения [новые:0]
  
  Дайджест 
  
  Горячие темы
    Избранное [новые:0]
  
Форумы 
 
Пользователи 
Статистика 
Статистика нагрузки 
    Мод. лог 
  
  Поиск 
  | 
| 
 13.10.2020, 21:22 
 | 
|||
|---|---|---|---|
Элегантный способ получать лог с иерархией.  | 
|||
| 
 #18+ 
  
    
  Вопрос касается применения последних возможностей Java Есть класс ProgrammLog с методами логгирования. Необходимо иметь возможность использовать лог во всех классах приложения + выводить лог иерархически учитывая вложенность вызовов. Т.е. в main создается ProgrammLog Log= new ProgrammLog(); Ну а далее. Вариант 1) Передавать переменную Log во все методы тупиковый вариант. Вариант 2) Сделать все классы наследуемыми от класса Log и передавать переменную Log только в конструктор . В принципе решает проблему . А внутри класса можно инициализировать свой лог подчиненный переданному Log. Минусы - в java нет множественного наследования и все это усложняет разработку классов. Вариант 3) Композиция - в конструктор каждого класса передавать new ProgrammLog(Log) и в каждом классе просто хранить переменую CurrentLog Какие еще возможны варианты? В идеале хотелось не передавать переменные типа Log а просто считать глубину вызовов Сергей С ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 13.10.2020, 21:44 
 | 
|||
|---|---|---|---|
Элегантный способ получать лог с иерархией.  | 
|||
| 
 #18+ 
  
    
  это делать не нужно. В начале мой проект @BlackBox (аннотация добавляющая логирование в Груви) поддерживала форматирование по вложенности вызовов. Получив реальный опыт работы с такими логами - понял что оно не нужно. Читается хуже намного чем без отступов. А больше не даёт никаких преимуществ. Это только на крошечных примерах красиво выглядит с отступами. На больших простынях - нет. И описанные подходы все неправильные. В Java либо через аспект делается либо через CGLib. Я Груви использую в основном из-за своего чудо логирования автоматического (AST аннотация). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 13.10.2020, 21:51 
 | 
|||
|---|---|---|---|
Элегантный способ получать лог с иерархией.  | 
|||
| 
 #18+ 
  
    
  dakeiras это делать не нужно. Я Груви использую в основном из-за своего чудо логирования автоматического (AST аннотация). Почитаю. Но хранить я собирался логи в СУБД оттуда с любым красивым форматированием удобно вытащить - делал так в других системах ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 13.10.2020, 21:55 
 | 
|||
|---|---|---|---|
Элегантный способ получать лог с иерархией.  | 
|||
| 
 #18+ 
  
    
  selis76 dakeiras это делать не нужно. Я Груви использую в основном из-за своего чудо логирования автоматического (AST аннотация). Почитаю. Но хранить я собирался логи в СУБД оттуда с любым красивым форматированием удобно вытащить - делал так в других системах я тоже делал в PL/SQL. В Яве логов намного больше лезет, помрёт база. Советую не париться с отступами. А вместо базы использовать datadog, или splunk. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 13.10.2020, 21:57 
 | 
|||
|---|---|---|---|
Элегантный способ получать лог с иерархией.  | 
|||
| 
 #18+ 
  
    
  вот эта аннотация для автоматического логирования: https://i-t.io/BlackBox ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 14.10.2020, 11:51 
 | 
|||
|---|---|---|---|
  
  | 
|||
Элегантный способ получать лог с иерархией.  | 
|||
| 
 #18+ 
  
    
  selis76 Вопрос касается применения последних возможностей Java Есть класс ProgrammLog с методами логгирования. Необходимо иметь возможность использовать лог во всех классах приложения + выводить лог иерархически учитывая вложенность вызовов. Т.е. в main создается ProgrammLog Log= new ProgrammLog(); Ну а далее. ПРочитайте про SLF4J, Logback и перестаньте придумывать лишние сущности. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
| 
 15.10.2020, 00:27 
 | 
|||
|---|---|---|---|
Элегантный способ получать лог с иерархией.  | 
|||
| 
 #18+ 
  
    
  Делать вложенность не стоит т.к. в хороших продуктовых системах эта вложенность может быть ... слишком глубокой чтоб ваш лог вообще печатался на экране. Дойдет до того что 99% вашего лога будет состоять из пробелов и отступов что негативно отразится на вводе-выводе для логов. Такой "пенопласт" слишком дорог в хранении. Кроме того, рекурсия сделает вашу задачу еще более неопределенной. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 
  
  
   | 
  | 

start [/forum/topic.php?fid=59&tablet=1&tid=2120659]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    72ms | 
get topic data:  | 
    13ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    45ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 11ms | 
| total: | 177ms | 

    | 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...