Size: a a a

Scala User Group

2020 March 04

Oℕ

Oleg ℕizhnik in Scala User Group
Нубские вопросы
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Навесил я во все модули баунд Logging[F]

Логер у меня контекстный. В инициализации создавал его так:
1) взял субконтекст из основного контекста, получил F HasLocal LogCtx
2) сделал LoggableContext
3) сделал Logs.withContext.forService, получил Logging[F]

Все запустилось, логи пишутся. Контекст не вижу.

Вопросы:
1) как и куда прикручивать лейаут, чтобы печатать контекст?
2) чтобы именование нормальное было, придется в каждом классе вешать отдельный баунд ServiceLogger и прокидывать разный имплиситы?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
tofu.logging.impl.ContextMarker не использует ctx
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Как этим пользоваться?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
источник

Oℕ

Oleg ℕizhnik in Scala User Group
1. Лейаут нужно прикрутить в logback.xml <layout class="tofu.logging.ELKLayout"/>
2. Чтобы внедрить независимую выдачу логгеров - нужно да, вешать баунды ServiceLogging[F, MyService[Any]]
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Правильно их инициализировать тяжело
источник

Oℕ

Oleg ℕizhnik in Scala User Group
нужно иметь один собранный экземпляр Logs, предположительно имплиситно
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Чтобы инициализировать очередной логгинг нужно вызвать logs.service
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Соответственно, два пути - либо есть код, который иинициализирует твой I[MyService[F]] и требовать имплиситно logs: Logs[I, F] и вызывать logs.service[MyService[Any]]
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Либо сконструировать где-то в контексте один большой лог бандл, - кейс класс в форме
@ClassyOptics
case class Loggers[F](
  foo: ServiceLogging[F, Foo[Any]],
 bar: ServiceLogging[F, Bar[Any]],
)
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Соответственно, я работаю над автоматизацией решений во второй форме
источник

Oℕ

Oleg ℕizhnik in Scala User Group
эх, лучше бы оно как у джейли на макросах имя логера и позицию генерировало
источник

Oℕ

Oleg ℕizhnik in Scala User Group
чем автоматизировать тонну бойлерплейта
источник

Oℕ

Oleg ℕizhnik in Scala User Group
По определённым причинам я полагаю, что все логгеры должны быть инициализированы до момента старта приложения
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Я не понимаю, зачем два логгера с одним и тем же подходом?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Если вам нравится логстейдж - используйте логстейдж
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Тофу логгинг решает немного другие задачи
источник

Oℕ

Oleg ℕizhnik in Scala User Group
я не понимаю, какой выигрыш дает этот подход
источник

Oℕ

Oleg ℕizhnik in Scala User Group
какие другие задачи решает логгинг?
источник