none
Funktion zur Ausgabe auf Bildschirm und gleichzeitig in eine Log-Datei RRS feed

  • Frage

  • Hallo

    ich habs fast, aber nur fast.

    Ich muss in meinen Scripten bestimmte Vorgänge in einer definierten weise loggen.

    Das Format sieht so aus ::<Datum,Stunden,Minuten,Sekunden> MELDUNG

    Im Moment habe ich folgende Funktion

        Function LogOut ($text)
            {
            $Logfile=".\output.txt" ; $m= "::" ; $date=Get-Date -Format "dd-MM-yyyy HH:mm:ss"
            $m + $date | Out-File -FilePath $Logfile -append #-Encoding ascii
            "$text" | Tee-Object -FilePath $Logfile -append | Write-Host -ForegroundColor Yellow
            }

    Wenn ich das mit LogOut -text "Dies ist ein Test" aufrufe sehe ich das auf dem Schirm, aber in der Log-Datei ist immer ein Zeilenumbruch zwischen dem Datum und dem Text.

    Also siehts in der output.txt so aus

    ::27-10-2016 11:35:53
    Dies ist ein Test


    Das darf und soll nicht sein!

    Egal was ich mache - ich bekomme den Zeilenumbruch nicht weg.

    Wo ist mein Fehler?

    Danke schon mal

    Donnerstag, 27. Oktober 2016 09:51

Antworten

  • Jeder schreibende Zugriff auf die Log-Datei erzeugt eine neue Zeile. Wie wär's damit?
    Function LogOut ($text)
            {
                $Logfile=".\output.txt"
                $m= "::"
                $date=Get-Date -Format "dd-MM-yyyy HH:mm:ss"
                $m + $date + ' ' + $text | Tee-Object -FilePath $Logfile -append | Write-Host -ForegroundColor Yellow
            }


    Grüße - Best regards

    PS:> (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 27. Oktober 2016 10:02
  • > Jeder schreibende Zugriff auf die Log-Datei erzeugt eine neue Zeile. Wie
    > wär's damit?
     
    Ich glaub er wollte in der Konsole das Datum nicht sehen, im Log aber
    schon :)
     
    Function LogOut( $text )
        {
        $Logfile = ".\output.txt"
        $date= "::" + ( Get-Date -Format "dd-MM-yyyy HH:mm:ss" ) + " "
        $text
        $date + $text | Out-File $Logfile -append
        }
     
     
    Donnerstag, 27. Oktober 2016 10:56

Alle Antworten

  • Jeder schreibende Zugriff auf die Log-Datei erzeugt eine neue Zeile. Wie wär's damit?
    Function LogOut ($text)
            {
                $Logfile=".\output.txt"
                $m= "::"
                $date=Get-Date -Format "dd-MM-yyyy HH:mm:ss"
                $m + $date + ' ' + $text | Tee-Object -FilePath $Logfile -append | Write-Host -ForegroundColor Yellow
            }


    Grüße - Best regards

    PS:> (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 27. Oktober 2016 10:02
  • > Jeder schreibende Zugriff auf die Log-Datei erzeugt eine neue Zeile. Wie
    > wär's damit?
     
    Ich glaub er wollte in der Konsole das Datum nicht sehen, im Log aber
    schon :)
     
    Function LogOut( $text )
        {
        $Logfile = ".\output.txt"
        $date= "::" + ( Get-Date -Format "dd-MM-yyyy HH:mm:ss" ) + " "
        $text
        $date + $text | Out-File $Logfile -append
        }
     
     
    Donnerstag, 27. Oktober 2016 10:56
  • Ah .... ok. Das hatte ich dann wohl missverstanden. Na dann kann er sich ja jetzt eine Lösung aussuchen ... cool. ;-)

    Grüße - Best regards

    PS:> (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 27. Oktober 2016 11:10