Javascript: Log-Datei lokal anlegen und erweitern?
Ich lasse einen Script in der Entwicklerkonsole laufen und schreibe mit console.log("Bla") immer wieder Informationen.
Jetzt möchte ich diese Infos automatisch in eine Logdatei auf meine Festplatte speichern - zB auf c:\meineLogs\js-log.txt
Die Datei wird also einmalig angelegt und soll bei jedem console.log dann (mit einer eigenen Funktion) erweitert werden (Append).
Ich nutze den Chrome-Browser auf Windows10.
Was muss ich in JS schreiben?
2 Antworten
Du wirst nicht von JS aus auf die Festplatte des nutzers zugreifen können. Du könntest aber eine eigene Log funktion programmieren, die z.b per Websockets oder Socket.io den text meinCoolerLog('Wichtiger log für text.log') an einen node.js server schickt, der den dan einfach in eine Textdatei schreibt.
Weil er auf deinem PC als Programm läuft. Stell dir vor Hacker könnten einfach durch deine Festplatte kucken und schreiben.
Ah jetzt hab ichs verstanden, dieser Server läuft bei mir lokal, also einfach ein Programm, mit dem ich ein Socket bereitstelle.
Und im JS definiere ich eine Verbindung da hin und sende einfach meinen console.log-Text an das Socket. Der "Server" schreibt mir dann die Logdatei.
Schlau.
Versuchs mal mit VBScript das lässt das FSO Objekt zu (FileSystemObject)
Beispiel:
<!--
Interaktive Hypertext Applikation
@ autor: Gerhard Porpaczy ¿
@ email: gerhard@porpaczy.com
@ website: http://gerhard.porpaczy.com
-->
<HTML>
<HEAD>
<hta:application id="D:\@\@\@.exe - D:\@\Musik\Meine Mucke" applicationname="D:\@\@\@.exe - D:\@\Musik\Meine Mucke")
border="thin"
borderstyle="static"
caption="yes" contextmenu="yes"
icon="favicon.ico" innerborder="no"
maximizebutton="no" minimizebutton="yes"
navigable="yes" scroll="auto"
scrollflat="yes" selection="yes"
showintaskbar="yes" singleinstance="yes"
sysmenu="yes" version="1.0"
windowState="normal" >
<TITLE>@ - D:\@\Musik\Meine Mucke</TITLE>
<script language="VBScript">
Option Explicit
On Error Resume Next
Public Sub AppStart()
Window.resizeTo 1024,768
window.scrollTo 0,0
myLoop()
End Sub
...
Public Sub ReadFile()
On Error Resume Next
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim mySource
mySource = "D:\Temp\@.hta"
Dim tmpFile
tmpFile = "D:\Temp\D__@_Musik_Meine Mucke.tmp"
If FSO.FileExists(tmpFile) Then
Dim objTest
Set objTest = FSO.GetFile(tmpFile)
If objTest.Size > 0 Then
Dim objFile
Set objFile = FSO.OpenTextFile(tmpFile, 1)
Dim strParam
strParam = objFile.ReadAll
objFile.Close
Hm ja, ich habe da aber keine Webseite, ich lese nur aus einer anderen mit dem Script in der Console. Also hab ichs dann dort.
Weiß nicht, wie mir VB da weiterhelfen kann - Chrome versteht kein VB-Script.
Und wie spreche ich die Websockets oder so mit Javascript an?
Und warum kann der Server bei mir lokal auf die Festplatte schreiben, aber mein Javascript nicht?