Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
UriahHeep
222 / 217 / 41
Регистрация: 24.09.2012
Сообщений: 509
Записей в блоге: 2
#1

Класс log, выводящий в cout и в syslog - C++

27.05.2015, 15:11. Просмотров 462. Ответов 3
Метки нет (Все метки)

Для логгирования в Linux-системе (для самого вопроса это не важно) хочу использовать свой класс с перегруженным operator<<(). Лог должен писаться в std::cout и в syslog.
C++
class sLog
{
.....
}
 
sLog slog;
 
slog << std::string("string") << 55 << std::endl;
Первые два реализуются друзьями типа
C++
friend sLog & operator<<(sLog &, std::string &)
friend sLog & operator<<(sLog &, int)
Что должно быть вторым аргументом последнего operator<<(), чтобы отлавливать манипуляторы std::endl и std::hex и другие?

Добавлено через 20 минут

Не по теме:

Да, это велосипед на костылях.

Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2015, 15:11     Класс log, выводящий в cout и в syslog
Посмотрите здесь:

Класс, выводящий таблицу умножения - C++
Создать класс Tabl, выводящий таблицу умножения (10х10) в cout при создании экземпляра этого класса т.е. из конструктора.

Создать класс содержащий строку и метод выводящий ее реверсное значение - C++
Помогите пожалуйста.Написать программу.чтобы слово катя выводилось в обратном порядке. Все это с помощью класса с приватом. И чтобы были...

Производный класс. Перегрузка << (cout). - C++
При инициализации массива указателей базового класса при вызове cout производный класс не отображается, отображается базовый. Без...

по заданым значениям х и у найти значение величины log x y (log с основанием х ) - C++
я в принципе понимаю как написать эту программу,но,хоть убейте,в хелпе visual studio 2008 не могу найти ,как обозначать логарифм.нашла...

По заданым значениям х и у найти значение величины log x y (log с основанием х) - C++
Подскажите,где ошибка в if-else.Потому-что,когда вводить вместо х или у 0,почему-то еррор не выдает,а что-то непонятное каждый раз.Спасибо....

Cout <<endl; Что это значит? Если ничего нету в cout? - C++
Здравствуйте ! Обьясните пожалуйста что значит cout &lt;&lt;endl; если он используется после цикла for?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
27.05.2015, 15:59     Класс log, выводящий в cout и в syslog #2
Вероятно basic_ostream и ios_base соответственно.
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
27.05.2015, 16:34     Класс log, выводящий в cout и в syslog #3
Цитата Сообщение от UriahHeep Посмотреть сообщение
Что должно быть вторым аргументом последнего operator<<(), чтобы отлавливать манипуляторы std::endl и std::hex и другие?
C++
1
2
sLog& operator<<(sLog&, ostream& (*)(ostream&));
sLog& operator<<(sLog&, ios_base& (*)(ios_base&));
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2015, 08:58     Класс log, выводящий в cout и в syslog
Еще ссылки по теме:

В чем разница std::cout и просто cout? - C++
Ребят ,подскажите на простом языке для чайников . В чем разница std::cout и просто cout?

cout.setf и cout.precision - C++
Здравствуйте. В одной книге увидел строчку кода: cout.precision(2); cout.setf(ios::fixed, ios::floatfield); Объясните, что...

cout vs. std::cout - C++
всем доброго времени суток. начал самостоятельно изучать c++. скачал в сети много разныx умныx книжек.. обнаружил в примераx кода...

Печатный отчёт выводящий в MS Word - C++ Builder
Я сделал печатный отчёт посредством компонентов вкладки QReport. При нажатии на кнопку, выводятся на печать поля выделенной строки из...

class выводящий эллементы другого класса... - C++
Сделать класс GROUP_OBJECT который будит выводить эллементы других классов на экран... помогите доделать один класс... #include...

Написать код, выводящий на экран информацию о системе - C++
Подскажите как узнать информацию о системе. Например:ОС,версия ос. Так же процессоре, оперативки и т.д. И как можно узнать список...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
UriahHeep
222 / 217 / 41
Регистрация: 24.09.2012
Сообщений: 509
Записей в блоге: 2
28.05.2015, 08:58  [ТС]     Класс log, выводящий в cout и в syslog #4
Ещё подскажите, как в случае с манипуляторами типа std::hex и std::oct их передать далее, т.е. отправить их в мой внутренний поток _ostrm:

C++
1
2
3
4
5
6
7
std::ostringstream _ostrm;  // Объявлен в классе sl
 
sLog& operator<<(sLog &sl, std::ios_base& (*)(std::ios_base& os))
{
//    sl._ostrm << std::ios_base& (*) (std::ios_base& os); // ???
    return sl;
}

И как конкретно определить, что пришёл std::endl, а не std::ends, например?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
sLog& operator<<(sLog& sl, std::ostream& (*)(std::ostream& os))
{
//    if (os == std::endl) { // ???
//        ....
//        sl._ostrm << endl;
//    }
 
    cout << sl._ostrm.str();
    sl._ostrm.clear();
    sl._ostrm.str(std::string());
 
    return sl;
}
Yandex
Объявления
28.05.2015, 08:58     Класс log, выводящий в cout и в syslog
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru