Log Fil oprettelse på Linux maskine
Jeg oprettede for noget tid siden et spørgsmål om oprettelsen af en log fil, og fik det til at virke på en windows maskine.Mit problem er nu at web-serveren hvor filen skal ligge er en Linux server, og jeg kan ikke få den til at oprette filen.
Jeg har applikation på stien /home/tydexx/public_html/.
Min class fil ligger så i /home/tydexx/public_html/WEB-INF/classes/util/
mit problem er så at den log fil som den opretter skal placeres i /home/tydexx/Logs/ og kataloget eksistere, men den opretter ikke en fil.
Webserveren er resin og køre som root på Linux maskinen så der burde ikke være nogen rettighedsproblemer.
Koden jeg bruger er som følgende:
Det skal lige siges at jeg har prøvet at ændre logDir til ..\\Logs\\ på en windows maskine og så kan den fint oprette filen, det er altså kun på linux serveren der er et problem.
/*
*@auther Thomas W. Yde
*/
package util;
import java.util.*;
import java.io.*;
public class Log
{
public Log(){}
public void makeLog(Exception newException)
{
try
{
String logDir = "/home/tydexx/Logs/";
java.util.Date d = new java.util.Date();
System.out.println(d.toGMTString()+"\n");
java.util.GregorianCalendar calendar = new java.util.GregorianCalendar();
int day = calendar.get(Calendar.DAY_OF_MONTH);
int month = calendar.get(Calendar.MONTH) + 1;
String year = "" + calendar.get(Calendar.YEAR);
String dateStamp = " "+day+"-" + month +"-"+ year +" ";
int hour = calendar.get(Calendar.HOUR) + 1;
int minutes = calendar.get(Calendar.MINUTE);
int seconds = calendar.get(Calendar.SECOND);
String timeStamp = ""+hour+":"+minutes+":"+seconds;
File fil = new File(logDir + "log -"+dateStamp+".txt");
PrintWriter writer;
FileWriter fileWriter = new FileWriter(fil, true);
writer = new PrintWriter(fileWriter, true);
writer.println();
writer.println("<Exception fanget kl. "+timeStamp+">");
writer.println(newException.getMessage());
writer.println("</Exception>");
}
catch(Exception e)
{
System.err.print(e.getMessage());
}
}
}
