Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Small problem with a log file
Forum Updated to NodeBB v4.3 + New Features

Small problem with a log file

Scheduled Pinned Locked Moved Solved General and Desktop
15 Posts 4 Posters 4.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • VRoninV Offline
    VRoninV Offline
    VRonin
    wrote on last edited by
    #6

    Side note: you should also include the QIODevice::Text flag

    "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
    ~Napoleon Bonaparte

    On a crusade to banish setIndexWidget() from the holy land of Qt

    B 1 Reply Last reply
    2
    • B Offline
      B Offline
      bask185
      wrote on last edited by
      #7

      I find it vague that file.open() can actually deletes the content rather than...just open it when given the wrong argument.

      Regardless I succeeded:

      Bullseye set at 6.33333 7.33333
      << 80
      << 3
      0x80 command case 3
      << 37
      Bullseye set at 7.33333 7.33333
      << 80
      << 3
      0x80 command case 3
      << 38
      Bullseye set at 8.33333 7.33333
      

      In the setup I open the file with Write Only and close it so it becomes.. empty :D

      But the output is almost the exact same as qDebug. So tnx. I'd like to mark your answer as the correct one, but one can only mark his own ;)

      1 Reply Last reply
      0
      • VRoninV VRonin

        Side note: you should also include the QIODevice::Text flag

        B Offline
        B Offline
        bask185
        wrote on last edited by bask185
        #8

        @VRonin said in Small problem with a log file:

        Side note: you should also include the QIODevice::Text flag

        If you say something like: "you should do...". Arguments 'why' are not redundant. Not long ago I held a short speech about it ;) and I came across a nice saying a few days ago: "Give a man a fish and you feed him one day, teach a man how to fish and you feed him for his life"

        Right now I have a perfectly fine working log file, so I don't feel like including something called 'Text flag' ;)

        VRoninV 1 Reply Last reply
        0
        • B bask185

          @VRonin said in Small problem with a log file:

          Side note: you should also include the QIODevice::Text flag

          If you say something like: "you should do...". Arguments 'why' are not redundant. Not long ago I held a short speech about it ;) and I came across a nice saying a few days ago: "Give a man a fish and you feed him one day, teach a man how to fish and you feed him for his life"

          Right now I have a perfectly fine working log file, so I don't feel like including something called 'Text flag' ;)

          VRoninV Offline
          VRoninV Offline
          VRonin
          wrote on last edited by
          #9

          @bask185 said in Small problem with a log file:

          "Give a man a fish and you feed him one day, teach a man how to fish and you feed him for his life"

          that's what the docs are for. it takes 5 seconds to Google QIODevice::Text

          @bask185 said in Small problem with a log file:

          Right now I have a perfectly fine working log file, so I don't feel like including something called 'Text flag' ;)

          As long as you don't care about newlines.

          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
          ~Napoleon Bonaparte

          On a crusade to banish setIndexWidget() from the holy land of Qt

          B 1 Reply Last reply
          2
          • jsulmJ jsulm

            @bask185 To add to @artwaw : why don't you keep the file open? Opening and closing it for each incoming byte sounds like a huge waste of resources.

            B Offline
            B Offline
            bask185
            wrote on last edited by
            #10

            @jsulm said in Small problem with a log file:

            @bask185 To add to @artwaw : why don't you keep the file open? Opening and closing it for each incoming byte sounds like a huge waste of resources.

            Now you mention it... I turned it off but I have another question.

            I would like to write data to the log also in other functions but it is a local variable. I tried working with the header file making it more global but I could not get it to work. I also tried

            QFile log("logboek.txt");
            QTextStream LOG(&log);
            LOG  << cAsHex << " >>";
            

            in other functions, but no luck :(

            jsulmJ 1 Reply Last reply
            0
            • B bask185

              @jsulm said in Small problem with a log file:

              @bask185 To add to @artwaw : why don't you keep the file open? Opening and closing it for each incoming byte sounds like a huge waste of resources.

              Now you mention it... I turned it off but I have another question.

              I would like to write data to the log also in other functions but it is a local variable. I tried working with the header file making it more global but I could not get it to work. I also tried

              QFile log("logboek.txt");
              QTextStream LOG(&log);
              LOG  << cAsHex << " >>";
              

              in other functions, but no luck :(

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #11

              @bask185 Implement a class which handles the logging. This class then creates a private static QFile instance and provides public static methods to write logs. Be careful if you use different threads - then you will need to serialize log writing.

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              B 1 Reply Last reply
              2
              • VRoninV VRonin

                @bask185 said in Small problem with a log file:

                "Give a man a fish and you feed him one day, teach a man how to fish and you feed him for his life"

                that's what the docs are for. it takes 5 seconds to Google QIODevice::Text

                @bask185 said in Small problem with a log file:

                Right now I have a perfectly fine working log file, so I don't feel like including something called 'Text flag' ;)

                As long as you don't care about newlines.

                B Offline
                B Offline
                bask185
                wrote on last edited by
                #12

                @VRonin said in Small problem with a log file:

                @bask185 said in Small problem with a log file:

                "Give a man a fish and you feed him one day, teach a man how to fish and you feed him for his life"

                that's what the docs are for. it takes 5 seconds to Google QIODevice::Text

                @bask185 said in Small problem with a log file:

                Right now I have a perfectly fine working log file, so I don't feel like including something called 'Text flag' ;)

                As long as you don't care about newlines.

                I do care about newlines alot, that is why add them like: LOG << "\nText to translate : "
                I've googled and read about it but I am not getting the usage for me, from what I understand it is a windows thingy and it is used for reading files. It sets \r\n to \n for use with C++.

                VRoninV 1 Reply Last reply
                0
                • jsulmJ jsulm

                  @bask185 Implement a class which handles the logging. This class then creates a private static QFile instance and provides public static methods to write logs. Be careful if you use different threads - then you will need to serialize log writing.

                  B Offline
                  B Offline
                  bask185
                  wrote on last edited by
                  #13

                  @jsulm said in Small problem with a log file:

                  you will need to serialize log writing

                  You mean working with connects and signals? when class X emits a signal to mainwindow with a string so mainwindow can puts the string in the log using the log-class??

                  jsulmJ 1 Reply Last reply
                  0
                  • B bask185

                    @VRonin said in Small problem with a log file:

                    @bask185 said in Small problem with a log file:

                    "Give a man a fish and you feed him one day, teach a man how to fish and you feed him for his life"

                    that's what the docs are for. it takes 5 seconds to Google QIODevice::Text

                    @bask185 said in Small problem with a log file:

                    Right now I have a perfectly fine working log file, so I don't feel like including something called 'Text flag' ;)

                    As long as you don't care about newlines.

                    I do care about newlines alot, that is why add them like: LOG << "\nText to translate : "
                    I've googled and read about it but I am not getting the usage for me, from what I understand it is a windows thingy and it is used for reading files. It sets \r\n to \n for use with C++.

                    VRoninV Offline
                    VRoninV Offline
                    VRonin
                    wrote on last edited by
                    #14

                    @bask185 said in Small problem with a log file:

                    it is a windows thingy

                    Mainly yes

                    and it is used for reading files

                    Mainly no

                    From http://doc.qt.io/qt-5/qiodevice.html:

                    When reading, the end-of-line terminators are translated to '\n'. When writing, the end-of-line terminators are translated to the local encoding, for example '\r\n' for Win32.

                    That means that \n will be converted to "\r\n" on windows automatically if you add | QIODevice::Text to the open argument

                    "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                    ~Napoleon Bonaparte

                    On a crusade to banish setIndexWidget() from the holy land of Qt

                    1 Reply Last reply
                    0
                    • B bask185

                      @jsulm said in Small problem with a log file:

                      you will need to serialize log writing

                      You mean working with connects and signals? when class X emits a signal to mainwindow with a string so mainwindow can puts the string in the log using the log-class??

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #15

                      @bask185 No, I did not write anything about signals/slots. I mean a class which manages the log writing. There is no need to do it in main window. Just provide static methods:

                      class Logger
                      {
                      public:
                          static void log(const QString &text);
                      private:
                          static QFile logFile;
                      };
                      ...
                      Logger::log("Some text");
                      

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved