Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Kleine Logging-Funktion

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
04.11.2006, 00:03 Uhr
FunnyDingo



Hallo zusammen,

dank dieses Forums und google konnte ich mein C++-Wissen ja schon um einiges verbessern, aber nun bin ich an einer Stelle, wo es hakt:

Ich würde gerne eine kleine Logging-Funktion. Ich stelle mir dabei vor, das ich eine Klasse schreibe, die mir z.B. drei Methoden bereitstellt: message, critical, error. Das ganz ist ja noch nicht schwer. Was aber schwer wird: Wie kann ich beliebige Informationen übergeben? Ich stelle mir das in etwa wie bei cout vor. cout kann ja folgendes:

C++:
char name[] = "FunnyDingo";
string text1 = "stellt schon zum";
int zahl = 232;
char text2[] = "mal doofe fragen";
cout << name << " " << text1 << " " << zahl << " " << text2 << endl;

Kann ich so etwas auch irgendwie auf ein eigenes Object anwenden?

Wäre echt toll, wenn jemand eine Tipp hätte!

lg,
Funny
--
"Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral." (John James Osborne)

Meine Website: http://www.funnydingo.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.11.2006, 10:30 Uhr
Pler
Einer von Vielen
(Operator)


Da musst du Operatoren überladen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.11.2006, 10:38 Uhr
FunnyDingo



Es muss ja nicht unbedingt der <<-Operator sein, aber ich gehe davon aus, dass ich den +-Operator überladen müsste, wenn ich diesen nutzen wollte. Das muss ich mir dann mal ansehen. Aber klappt dass dann auch, dass ich die Datentypen mischen kann? Denn das ist mein größeres Problem.
--
"Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral." (John James Osborne)

Meine Website: http://www.funnydingo.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.11.2006, 09:52 Uhr
ao

(Operator)


Das ist ne ANSI-C++-Frage
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.11.2006, 13:07 Uhr
alex309



was willst du denn übergeben?
schreibe doch eine methode die "x"-Parameter entgegen nimmt. (verschiedene Informationen)

mfg
alex
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.11.2006, 11:47 Uhr
FunnyDingo



Ja, das geht schon in die richtige Richtung. In C gibt es ja diese variablen Argumenten-Listen. C++ gibt es (meine ich zumindest mal gelesen zu haben) wohl eine Verbesserung dieser Listen. Die muss ich mal mir mal ansehen. Weiß vielleicht grad jemand das passende Stichwort dazu?
--
"Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral." (John James Osborne)

Meine Website: http://www.funnydingo.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.11.2006, 15:22 Uhr
alex309



was willst du denn alles übergeben? und woher bzw. wohin?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.11.2006, 15:34 Uhr
FunnyDingo



Strings und Ints, aber halt unbestimmt. Ich möchte z.B. folgendes in das Log schreiben können.

Zitat:
09.11.2006 15:28 - Core - Switched To User 'appuser'
09.11.2006 15:28 - Network - Listening on 192.168.0.1:5000

Im Code würde ich das am liebsten wie folgt machen:

C++:
// Dies ist nur ein Beispiel, die Variablen kommen natürlich aus einer Cfg oder ähnlichem
string theuser = "appuser";
char ip[] = "192.168.0.1";
int port = 5000;
gl.log("Core", "Switched To User '" + theuser "'");
gl.log("Network", "Listening on " + ip  + ":" + port);

Ja und in der Methode log() müsste ich die übergebenen Parameter + aktuelles Datum/Uhrzeit (holt sich die Methode selbstständig) in die Log-Datei schreiben.
--
"Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral." (John James Osborne)

Meine Website: http://www.funnydingo.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.11.2006, 15:57 Uhr
alex309



welche parameter hat denn deine log()?

string theuser = irgendeinuser;
log(string, string, string) und dann ("core", "Switched To User ", theuser)

überladen: log(string, string, string, int) --- ("Network", "Listening on ",ip ,port)
je nachdem was du übergeben willst, rufst du die entsprechende log-funktion auf
dann alles in dein log schreiben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
10.11.2006, 16:09 Uhr
alex309




C++:
void log(string, string, string);
void log(string, string, string, int);

int main()
{
    string theuser = "Hans im Glueck";
    string ip = "192.168.0.1";
    int port = 5000;
    log("Core", "Switched To User ", theuser);
    log("Network", "Listening on ",ip, port);

    getch();
    return 0;    
}

void log(string str1, string str2, string str3)
{//hier kommt der code rein, der die variablen in deine log-datei schreibt
    cout<<str1<<endl<<str2<<endl<<str3<<endl;
    cout<<endl;
    cout<<"09.11.2006 15:28 - "<<str1<<" - "<<str2<<" - "<<str3<<endl;    
}
void log(string s1, string s2, string s3, int i1)
{//hier kommt der code rein, der die variablen in deine log-datei schreibt
    cout<<s1<<endl<<s2<<endl<<s3<<endl<<i1<<endl;
    cout<<endl;
    cout<<"09.11.2006 15:28 - "<<s1<<" - "<<s2<<s3<<":"<<i1;
}


Core
Switched To User
Hans im Glueck

09.11.2006 15:28 - Core - Switched To User - Hans im Glueck

Network
Listening on
192.168.0.1
5000

09.11.2006 15:28 - Network - Listening on 192.168.0.1:5000

Dieser Post wurde am 10.11.2006 um 16:11 Uhr von alex309 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: