2013-03-12 11 views
5

Po prostu krótkie pytanie dotyczące formularza.Java - czy należy używać stałych w komunikatach do dziennika?

Zapisuję różne komunikaty o błędach i zastanawiam się, czy powinienem utworzyć nowy ciąg dla wiadomości w wywołaniu dziennika, lub utworzyć stały ciąg w interfejsie używanym do przechowywania innych stałych ciągów znaków, a następnie po prostu odwołać się do tego . Używałem kodu analizatora kodu i nawiązywałem do tego drugiego, mówiąc, że lepiej jest tworzyć stałą łańcuchową i odwoływać się do niej, nawet jeśli łańcuch jest używany tylko raz. Zastanawiam się, czy tak rzeczywiście jest?

góry dzięki

+0

To jest pytanie typu dyskusji i prawdopodobnie zostanie zamknięte. Ale nie mogę się oprzeć wkładowi: nie rób tego. Komunikaty dziennika należą do pliku właściwości, do którego odnosi się stały klucz, aby w razie potrzeby można było przetłumaczyć je na inne języki. –

+3

@ ErnestFriedman-Hill: Komunikaty w dzienniku są narzędziami do debugowania środowiska wykonawczego, a nie czymś, co użytkownik powinien zobaczyć :-) –

+0

Jeśli twój kod trafi do pliku jar, który jest używany przez jakąś stronę trzecią, możesz założyć, że będzie chciał, aby twoje zarejestrowane komunikaty o błędach być zlokalizowane! –

Odpowiedz

3

Nie jestem pewien, co narzędzie analizator użyć lub jak skonfigurowano go jednak rada wydaje mi się nieważna. Kompilator Java utworzy dla ciebie stałe łańcuchowe (zwykle nie będzie przydzielać nowej instancji String, gdy kod wywoła metodę dziennika), więc jaki byłby sens robienia tego ręcznie?

Jeśli wstawisz ciąg znaków do interfejsu, możesz udostępnić je pomiędzy klasami, ale nie w sposób, w jaki myślisz: Kompilator Java skopiuje wartość stałej do kodu, w którym jest używany (więc wynikowy bajt kod nie będzie już odwoływał się do interfejsu!)

Moja sugestia: Wyłącz to mylące ostrzeżenie.

+0

Dziękuję później! Proszę sprawdzić: https://stackoverflow.com/questions/446663/best-way-to-define-error-codes-strings-in-java –

2

Logowanie powinno być łatwe do dodania i usunięcia; po prostu dostarczają bardzo cienką warstwę. Ponadto mogą być używane MessageFormats, które są podatne na błędy/nie można ich usunąć po zastąpieniu ich przez stałą nazwę.

Również stałe łańcuchowe są importowane, a następnie zmiany nie muszą być już wykrywane, gdy stałe zmiany.

Również ciągi dziennika nie są zbyt surowe, informacyjne same.

Lepiej oznaczyć te struny jako nie podlegające internacjonalizacji.

Powiązane problemy