Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

11

10.02.2013, 19:11

An ein Namespace habe ich gar nicht gedacht. Das ist eine gute Idee. Ich denke, das werde ich dann so machen.
Danke.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FSA« (10.02.2013, 23:28)


FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

12

12.02.2013, 15:29

Um den Thread abzuschließen hier die Lösung inklusive beispiel Log-Datei.

Der Benutzer hat zwei Möglichkeiten.
Nummer eins: Er benutzt die #defines. LOG_ERROR(), LOG_INFO(), LOG_NULL_POINTER()...
Das hat den Vorteil, dass automatisch die Zeile und Datei mit in die Log geschrieben wird.

Nummer zwei: Er benutzte direkt den Log-Namespace: Log::WriteDirect("")

Hier eine beipiel Log-Datei:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
-------------- THE FORCE FIELD ENGINE LOG --------------
Engine version 121
Renderer version 11
Shader version 1
Physic version 303
--------------------------------------------------------

Creating engine modules
--------------------------------------------------------

Creating graphics module
--------------------------------------------------------
--------------------------------------------------------

Creating sound module
--------------------------------------------------------
--------------------------------------------------------

WARNING: Data\Intern\Graphics\Arrow.ffm (model.cpp, line 353, function Model::Init)
ERROR:   Model invalid (model.cpp, line 354, function Model::Init )
WARNING: Modelversion does not match (model.cpp, line 253, function Model::Init)
WARNING: Data\Intern\Graphics\Ball.ffm (model.cpp, line 353, function Model::Init)
ERROR:   Model invalid (model.cpp, line 354, function Model::Init )

Create physic module
--------------------------------------------------------

Destroy physic module
--------------------------------------------------------

Destroy graphics module
--------------------------------------------------------
--------------------------------------------------------

Destroy sound module
--------------------------------------------------------
--------------------------------------------------------

Destroy engine modules

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

12.02.2013, 15:47

Vielleicht als kleine Ergänzung: Das erste, was ich in jedes Log schreib, sind die für meine Anwendung wesentlichen Information betreffend der aktuellen Systemkonfiguration wie z.B. die genaue Version der Anwendung und des Betriebssystems, Modellbezeichnungen der CPUs, verfügbarer Arbeitsspeicher und ganz besonders die Modellbezeichnungen der Grafikkarten. Im professionellen Einsatz hat sich das für mich als essentiell herausgestellt...

Und was man sich bei solchen Log Dateien unbedingt auch überlegen muss, ist wie und wo genau man diese speichert. Unter Windows wäre der imo richtige Ort dafür das AppData\Local Verzeichnis des jeweiligen Benutzers...

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »dot« (12.02.2013, 15:59)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

12.02.2013, 16:00

Genau, wo er es nie im Leben wieder findet, um sein C:\ bereinigen zu können.
Ich weiß, der Ansatz ist üblich unter Windows, aber ich finde es furchtbar, was dort alles landet.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

12.02.2013, 16:05

Darum kümmert sich das Setup bei der Deinstallation. Wo speicherst du deine Logs?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

16

12.02.2013, 17:34

Tja, da ich weder Installation, noch Deinstallation liefere, direkt in einem Log-Ordner am Platz der Anwendung ;)
Das Problem ist ja nicht, dass eine Deinstallation es nicht löschen würde, sondern dass die Dinger da liegen bleiben und wachsen, während die Anwendung installiert ist. Sowas kotzt mich einfach an, weil mein Laptop 43 GB für C:\ reserviert hat und es immer weniger und weniger wird (momentan nur 6GB frei), egal wohin ich eine Anwendung installiere oder selbst, wenn ich nichts installiere.
Geht ja auch nicht gegen dich und es ist definitiv Gang und Gebe es im User-Home zu speichern. Ich persönlich finde das aber total ätzend. Wenn ich etwas nach K:\ installiere, dann soll es sich auch bitte nur dort austoben. Ich könnte den User-Home symlinken, aber eine gute Lösung finde ich das nicht.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

17

12.02.2013, 17:46

Ich nehms auch nicht persönlich, ich seh nur eine Reihe von Problemen mit dem Ansatz, Logs oder ganz besonders Konfigurationsdateien im Installationsverzeichnis der Anwendung abzulegen. Allem voran: Was wenn verschiedene Benutzer die gleiche Anwendung verwenden? Woher weiß du, welches Log zu welcher Session und welche Config zu welchem User gehört? Außerdem ist davon auszugehen, dass die Anwendung im Installationsverzeichnis im Regelfall keine Schreibrechte besitzt. Natürlich kann man das Verzeichnis einstellbar machen und den Benutzer fragen, wo die Logs hin sollen, aber am Ende ist das Benutzerverzeichnis so ziemlich der einzige passende Ort, wo du dein Log bzw. deine Config unter allen Umständen garantiert immer ablegen kannst. Auch hast du ab Vista dort die Möglichkeit, out of the box die Config Datei automatisch mit dem User zu roamen, was ansonsten eher schwierig zu erreichen sein dürfte...

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »dot« (12.02.2013, 18:02)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

18

12.02.2013, 18:50

Alles richtig. Sehe ich dennoch nicht als Grund genug oder bei mir als zutreffend genug an, davon abzulassen ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

19

12.02.2013, 19:03

@dot: Die Infos versuche ich schon des längeren herauszufinden. Hast du eine Ahnung wie?

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

12.02.2013, 19:11

Falls du das AppData\Local Verzeichnis meinst: SHGetKnownFolderPath() mit FOLDERID_LocalAppData.

Werbeanzeige