2016-09-07 3 views
0

мой журнал код услуги:Включение и отключение службы

public class LogService 
{ 
    private static LogService _instance; 
    public static LogService Instance 
    { 
     get 
     { 
       if (_instance == null) 
        _instance = new LogService(); 

       return _instance; 
      } 
     } 
    } 

    public void ErrorLog(string log) 
    { 
     Trace.TraceError(log); 
    } 

    public void WarningLog(string log) 
    { 
     Trace.TraceWarning(log); 
    } 
} 

Я хочу чистый способ включения и отключения этой услуги. , например:

if (some_variable == false) { 
    // ignore all logService calls 
} 

, что это лучший способ сделать это?

+3

Я думаю, что способ, которым вы написали, правильный (сохранение флага включен/отключен) – MajkeloDev

+0

Прочитайте атрибут из 'web.config' и, если он соответствует вашим указанным критериям, включите службу. Если нет, отключите службу. –

+0

ИМХО вы не должны. Вместо этого вы должны контролировать прослушиватели, которые используют службу, чтобы где-то написать результат. Поэтому просто отключите/удалите слушателей. Вот как работает система ведения журнала. –

ответ

1

Если вы хотите «очистить» путь, чем разместить if (!IsLoggingEnabled()) return; в каждом методе, вы можете посмотреть в Aspect Oriented Programming, где вы просто поместите атрибут в класс или соответствующие методы, а фактический код будет во время или после компиляции.

Но это может быть излишним для замены нескольких заявлений if().

 Смежные вопросы

  • Нет связанных вопросов^_^