Я могу зарегистрировать информационные сообщения без проблемы, но не могу выяснить, как зарегистрировать подробные сообщения. Любая справка была бы одобрена.
Моя проблема:
loggingEvent. Уровень может быть проверен в функции Формата. Возможные значения среди других, Информации, Отладки, Ошибки, Подробной. Существуют больше, но они - те, я буду использовать главным образом.
Фактический журнал возражает, только имеет следующие методы:
Журнал. Информация
Журнал. Отладка
Журнал. Предупредить
Журнал. Ошибка
Поскольку Вы видите - нет подробный!
Таким образом, как я могу Зарегистрировать подробное сообщение, это отличается от отладки
Заранее спасибо
Вы можете добавить уровень Verbose (или Trace) в log4net, используя методы расширения. This is what I'm using:
public static class ILogExtentions
{
public static void Trace(this ILog log, string message, Exception exception)
{
log.Logger.Log(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType,
log4net.Core.Level.Trace, message, exception);
}
public static void Trace(this ILog log, string message)
{
log.Trace(message, null);
}
public static void Verbose(this ILog log, string message, Exception exception)
{
log.Logger.Log(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType,
log4net.Core.Level.Verbose, message, exception);
}
public static void Verbose(this ILog log, string message)
{
log.Verbose(message, null);
}
}
Usage example:
public class ClientDAO
{
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(ClientDAO));
public void GetClientByCode()
{
log.Trace("your verbose message here");
//....
}
}
Source:
http://www.matthewlowrance.com/post/2010/07/14/Logging-to-Trace-Verbose-etc-with-log4net.aspx
You не могу понять, потому что, AFAIK нет "подробного" уровня в log4net.Он есть в log4j?
Ниже приведены уровни
ВСЕ ОТЛАДКА ИНФОРМАЦИЯ ПРЕДУПРЕЖДЕНИЕ ОШИБКА FATAL ВЫКЛ.
Информационные сообщения - это сообщения, в которых вы указываете, что вы делаете в своем приложении в данный момент. Эти сообщения, выдаваемые командами или инструментами ОС, когда вы говорите -verbose, будут такими сообщениями.
Отладочные сообщения в основном предназначены для программистов и позволяют записывать такую информацию, как создание переменных, жизненный цикл, трассировки стека исключений и т. Д. То, что будет интересно только программистам / сотрудникам службы поддержки.
{{1} }[Edit] Просто подумал об этом. Вы можете очень хорошо добавить в свое приложение переключатель или элемент конфигурации с именем «verbose», а затем выдавать информационные сообщения, если установлено значение true. Или оберните журнал вспомогательным методом, который будет входить в log4net, а также отправлять то же сообщение на консоль. Кроме того, вы можете использовать ConsoleAppender для записи сообщений на консоль. Но я никогда им не пользовался. Это то, что вы искали?
Надеюсь, это поможет.
Apache log4net имеет следующие уровни журнала:
DEBUG
Для сообщений, которые считаются более подробными, чем информационные сообщения ( INFO
), можно выбрать уровень DEBUG
. Написание отладочных сообщений должно быть таким простым, как:
myLog.Debug("This is a pretty verbose message");
Если вы пишете очень много отладочных сообщений и / или создание сообщений требует больших затрат (например, включает тяжелую конкатенацию строк), подумайте о добавлении условного выражения для регистрации:
if (myLog.IsDebugEnabled)
{
myLog.Debug("This is a pretty verbose message");
}
Если вы обнаружите вы делаете это часто и хотите ОСУШИТЬ свой код, подумайте об использовании методов расширения для отложенного форматирования сообщений , которые превратят приведенный выше оператор в следующий:
Log.Debug( () => "This is a pretty verbose message" );
Попробуйте:
#bottombox {
background:transparent url(../images/bg-bottombox.png) no-repeat scroll 0 0;
float:none;
height:137px;
margin:0 auto;
padding-top:14px;
width:296px;
}
Это должно центрировать div в нижнем колонтитуле.
-121--1378113-OrderBy(x => x.Order < 0 ? int.MaxValue : x.Order)
или если вам нужно упорядочить отрицательные значения в порядке убывания
OrderBy(x => x.Order < 0 ? (long)int.MaxValue - x.Order : (long)x.Order)
-121--4605215- Я не пытался это сделать, но я думаю, что это должно быть довольно прямо вперед: внутренне log4net знает уровень «подробный»; только интерфейс ILog не раскрывает его. Поэтому добавление метода IsVerboseEnabled и Verbose () к этому интерфейсу должно быть достаточно простым. Конечно, вы должны быть готовы изменить исходный код log4net...