записывать сгенерированный LINQ-to-SQL SQL в NLog

Попробуйте настроить уровень сообщений об ошибках в ваших действительных файлах php. Или, как предложили другие, проверьте настройки сервера - это может быть что-то в php.ini или какое-то ограничение в отношении вашего хоста. Не просто полагайтесь на .htaccess. Кроме того, при поиске и устранении неисправностей print_r любые переменные, которые могут показаться подозрительными.

12
задан Julian 25 September 2016 в 00:11
поделиться

1 ответ

Вам просто нужен класс для работы в качестве TextWriter, который LINQ to SQL должен отправлять через нужный вам метод, например

db.Log = new ActionTextWriter(s => logger.Debug(s));

Вот небольшой текстовый редактор, который я написал, который принимает делегата и отправляет туда, чтобы вы использовали приведенный выше код. Возможно, вы захотите изменить этот класс, чтобы он использовал регистратор, выполнял некоторую обработку / разбиение текста, а затем отправлял его в NLog.

class ActionTextWriter : TextWriter {
  private Action<string> action;

  public ActionTextWriter(Action<string> action) {
    this.action = action;
  }

  public override void Write(char[] buffer, int index, int count) {
    Write(new string(buffer, index, count));
  }

  public override void Write(string value) {
    action.Invoke(value);
  }

  public override Encoding Encoding {
    get { return System.Text.Encoding.Default; }
  }
}
18
ответ дан 2 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: