German ABZipDirectory - Änderungsdatum

RauchG

Active Member
Licensed User
Longtime User
Hallo zusammen,

in meinen apps habe ich Logs eingebaut. Sie protokollieren wie die User durch das Programm gehen. Abstürze werden auch gelogt. Diese log.txt werden gezipt und auf unser Server geschickt.

Die einzelnen log.txt haben nach dem zippen alle das gleiche Änderungsdatum. Schon auf dem Gerät.

Was muss ich machen, dass das Erstellungsdatum erhalten bleibt?

Gruß
RauchG

vor_zip.JPG nach_zip.JPG
 

Alexander Stolte

Expert
Licensed User
Longtime User
Ein workaround wäre, du packst das erstell Datum in den Titel, so hast du wenigstens dort eine Uhrzeit. Wenn man unter Windows etwas Zipt dann bleibt das Datum wie es ist, denke einfach mal, dass die Bibliothek die Dateien neu schreibt, das würde das gleiche Datum und Uhrzeit erklären.

Mit freundlichen Grüßen
Alexander
 

mw71

Active Member
Licensed User
Longtime User
Also "envis0log 24 02 2017 13 01.txt" so würde ich es machen.
moin,

Vorschlag: envis0Log_20170224_1301.txt
hat den Vorteil das die Sortierung nach Name ordentlich funktioniert (zumindest sollte es das :))

@RauchG, hast du mal ein Beispiel wie du das normale Log erstellst?

Grüße
 

RauchG

Active Member
Licensed User
Longtime User
@RauchG, hast du mal ein Beispiel wie du das normale Log erstellst?

Die Idee für die Log ist von LucaMs: https://www.b4x.com/android/forum/t...-automatic-insertion-of-log-statements.47510/

Momentan mache ich es so:

B4X:
Sub Activity_Create(FirstTime As Boolean)
    modMyUtils.MyLog("" & CRLF & "Exec: Main.Activity_Create")
    modMyUtils.MyLog(TAB & "FirstTime = " & FirstTime)

B4X:
'Code module modMyUtils
'Subs in this code module will be accessible from all modules.
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
  
    'Set it to False to avoid the MyLog messages.
    Public LogOn As Boolean = True

  
End Sub

Public Sub MyLog(Msg As String)
    If LogOn Then
        Log(Msg)
        LogWrite(Msg)
      
    End If
  
End Sub

Sub LogWrite(EventsLog As String)

    Dim TextWriter1 As TextWriter
    Dim sdRoot As String
    Dim mDateTime As String


    DateTime.DateFormat = "yyyy-MM-dd HH:mm:ss"
    mDateTime = DateTime.Date(DateTime.now)

    sdRoot = File.DirRootExternal & "/"
  
    Log("EventsLog " & EventsLog)

    If HDB.mx1combera_id = Main.mComberaID Then

        If File.Exists(sdRoot & Main.mActionName & "/Logs/files", Main.mActionName & HDB.mx1combera_id & "log.txt") = False Then
            File.WriteString(sdRoot & Main.mActionName & "/Logs/files", Main.mActionName & HDB.mx1combera_id & "log.txt", "")
          
        Else
            TextWriter1.Initialize(File.OpenOutput(sdRoot & Main.mActionName & "/Logs/files", Main.mActionName & HDB.mx1combera_id & "log.txt", True))
            TextWriter1.WriteLine("- " & EventsLog & " - " & mDateTime)
            TextWriter1.Close
          
        End If

    End If

End Sub

Wenn ich jetzt die Zeit mit in den Namen nehme, wird mir jedes mal ein neues Log.txt erstellt. Ist ja klar, now ändert sich ja ständig. Da muss ich mir was überlegen.

Eventuell eine "log" Tabelle erstellen um zu sehen ob es die Zeit schon gibt.
 
Last edited:
Top