powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что происходит если писать Console.WriteLine в Не консольных проектах ?
9 сообщений из 9, страница 1 из 1
Что происходит если писать Console.WriteLine в Не консольных проектах ?
    #38477292
MsSql_Study
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Довольно глупый вопрос.

Скажите, если в классе разрабатывавшемся для консольного приложения, но перенесенном в сервис, почти везде идет вывод отладочной информации в виде Console.WriteLine - что будет происходить ?

Я вот правильно понимаю, что если консоль в сервисе явно не создается ( вроде бы через AllocConsole или что то такое), то вызов Console.WriteLine вообще ничего не делает ?

Просто не хочется, чтобы в запущщеном сервисе в консоль падали сообщения, зря отжирая память (ведь все равно эту консоль никто не увидит)

И кстати вопрос- у консоли есть какое то ограничение по размеру ? А то сервис планируется быть включенным буквально 24*7 (банальный такой сервис) - не будет ли какого то переполнения в консоли ?
...
Рейтинг: 0 / 0
Что происходит если писать Console.WriteLine в Не консольных проектах ?
    #38477317
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_Study,

ничего не случится, но разработчику класса нужно выдать в бубен - нужно использовать логгер - хоть встроенный trace, хоть log4net

Поиск с заменой может спасти отца русской демократии
...
Рейтинг: 0 / 0
Что происходит если писать Console.WriteLine в Не консольных проектах ?
    #38477354
MsSql_Study
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

Т.е. я правильно понял, что пока консоль явно не создана, то и обращения WriteLine просто игнорятся ?
Ну и хорошо :)
Зачем тогда лопатить код и вычищать WriteLine? Пусть будет - тем более эти строки пригодятся при отладке в Visual Studio хотя бы.

Да, процесс прикручивания логгера сейчас как раз в процессе - ввиду перехода к сервису, и необходимости оповещать о причине своей внезапной кончины.

А вот в необходимости навороченного log4net и других аналогов, не вижу смысла.
Нет, ну правда, простой лог
Код: c#
1.
File.AppendAllText (Exception +innerException+МожетЕще_StackTrace)


в блоках catch + AppDomain.UnhandledException.

Большего ничего и не нужно.
Application.UnhandledException вроде бы в сервисе нету. Или есть ?

С учетом того, что сервис периодически отписывается в БД о своем существовании. В случае прекращения оповещения будет выслана бригада спасателей в резиновых сапогах, чтобы значит и в стужу и в слякоть сервис поднять, и заодно почитать что он там мяукнул перед смертью - не критичные ошибки, типа временной потери связи, не приводят к смерти, все просто откладывается на попозже.

Надо было все изначально продумывать с учетом логирования, пожалуй. Сейчас лишь костыль-авось в будущем будет время переписать.
...
Рейтинг: 0 / 0
Что происходит если писать Console.WriteLine в Не консольных проектах ?
    #38477370
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_StudyПусть будет - тем более эти строки пригодятся при отладке в Visual Studio хотя бы.
1)не удалить а заменить
2)простой от сложного ничем не отличается, но писать можно на консоль, в файл, сокет, syslog, базу данных лёгкими изменениями в файле конфигурации
...
Рейтинг: 0 / 0
Что происходит если писать Console.WriteLine в Не консольных проектах ?
    #38477529
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_Study,

Нет ничего более постоянного, чем временное.
...
Рейтинг: 0 / 0
Что происходит если писать Console.WriteLine в Не консольных проектах ?
    #38477573
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MsSql_StudyНет, ну правда, простой лог
Я так понимаю, под простотой подразумевается количество символов кода на операцию логирования? Тогда вышеприведенное не намного проще
Код: c#
1.
LogX.Log.Fatal("{0}: {1}{2}{3}", e.GetType().Name, e.Message, Environment.NewLine, e.StackTrace)


где LogX
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public static class LogX
{
  public static Logger Log { get; private set; }

  static LogX()
  {
    Log = LogManager.GetLogger("*");
  }
}


Добавить к проекту один референс и файл с конфигом логгера - невесть какая проблема.
Учитывая, что обсуждается логирование для сервиса, рано или поздно может возникнуть необходимость в логировании из нескольких потоков, необходимость в архивации логов, когда лог в одном файле становится слишком большим, итд итп. Нормальный логгер с этим вполне справляется. Самописный велосипед - вряд ли.
P.S. log4net лучше не использовать - он давно мертв. NLog в помощь.
...
Рейтинг: 0 / 0
Что происходит если писать Console.WriteLine в Не консольных проектах ?
    #38477577
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныP.S. log4net лучше не использовать - он давно мертв

Заблуждение. Last Published: 2013-11-18 | Version: 1.2.13
С недавних пор там хорошая активность.
...
Рейтинг: 0 / 0
Что происходит если писать Console.WriteLine в Не консольных проектах ?
    #38477578
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

это не так существенно на фоне File.AppendAllText
...
Рейтинг: 0 / 0
Что происходит если писать Console.WriteLine в Не консольных проектах ?
    #38478343
MsSql_Study
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен. Функционал хороший у этих логеров. Надо будет подумать о встраивании.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Что происходит если писать Console.WriteLine в Не консольных проектах ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]