Zawsze stosować następujący wzór do skonstruowania (slf4j) rejestratory:Jaki jest narzut tworzenia rejestratorów SLF4J w kontekście statycznym i nie statycznym?
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
ten pracował tak daleko, ale zastanawiałem się o kontekście static
w pewnym momencie i konieczności przejścia w konkretnej klasie dosłowne cały czas, a nie tylko przy użyciu non-statyczne rejestratora jak
private final Logger log = LoggerFactory.getLogger(getClass());
To w zasadzie został poproszony (a odpowiedział), zanim tutaj LOG4J
Should logger be private static or not
i tutaj
Should be logger always final and static?
Zdaję sobie sprawę final
jest w zasadzie obowiązkowe, więc jestem zastanawiać, jak wysoko nad głową z użyciem slf4j w kontekście non-statycznej rzeczywistości.
Q:
Czy istnieje znacząca praktyczna narzut użyciu
private final Logger log = LoggerFactory.getLogger(getClass());
nad
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
średniej (web) aplikacji ? (Nie ma potrzeby, aby „omówić” high-end, ciężkie obciążenia webapps tutaj)
Uwaga, ja ostatecznie planuje użyć nawet ładniejszy podejścia z wykorzystaniem CDI aby uzyskać rejestrator slf4j jak
@Inject private final Logger log;
jak opisano tutaj http://www.seamframework.org/Weld/PortableExtensionsPackage#H-TtLoggerttInjection, ale najpierw muszę wiedzieć o buforowaniu rejestratora.
Sub pytanie: czy jest to w ogóle możliwe, aby używać ?:
@Inject private static final Logger log;
(dopiero zaczynają z CDI, aby być uczciwym)
Należy pamiętać, że jeśli użyjesz 'getClass()' nazwa/kategoria rejestratora może się nieoczekiwanie zmienić w obecności podklas. – Thilo
Dzięki. Właściwie szukam tutaj "wzorca tworzenia loggera", ale muszę przyznać, że nie jestem w 100% pewny co do mojego własnego przypadku użycia, czyli czy chcę, aby możliwe podklasy mogły uzyskać własne rejestratory lub jeśli chcę aby ponownie użyć jednego ze wspólnej super klasy. : -/ – Kawu
Możesz w ogóle pozbyć się tej zmiennej, jeśli używasz [jcabi-log] (http://www.jcabi.com/jcabi-log/), statycznego opakowania wokół slf4j – yegor256