Escrita em arquivo

Pessoal estou com um problema na escrita de um arquivo, ele esta sobrescrevendo as linhas, não esta escrevendo uma nova linha e sim sempre escrevendo na primeira, abaixo segue o codigo:

public static void log(String linha){
		Log.d("ARQUIVO_LOG_SALVO", "Chamou para gravar o Log: ");
		File file;
		File root = Environment.getExternalStorageDirectory();
		file = new File(root, "Log.txt");
		try{
			BufferedWriter writer = new BufferedWriter(new FileWriter(file));
			Log.d("ARQUIVO_LOG_SALVO", "Diretorio root: " + root.getAbsolutePath().toString());
			Log.d("PERMISSAO", "Permissão: " + root.canWrite());

			if(root.canWrite()){
				linha += System.getProperty("line.separator");
				writer.write(Util.formataDataHora("dd/MM/yyyy HH:mm:ss", Util.getDataHoraAtual())+ " - " +linha);
				writer.close();
				Log.d("ARQUIVO_LOG_SALVO", "Arquivo de log salvo com sucesso na pasta: " + root.getPath().toString());
			}
		}catch (Exception e) {
			Log.e("ERRO_GRAVAR_ARQUIVO" ,"Erro ao gravar o arquivo no sdcard. Erro: " + e);
		}

	}

Olá amigo, altere o write dentro do seu if veja:

          if(root.canWrite()){  
                linha += System.getProperty("line.separator");
                writer.newLine();  
                writer.write(Util.formataDataHora("dd/MM/yyyy HH:mm:ss", Util.getDataHoraAtual())+ " - " +linha);  
                writer.close();  
                Log.d("ARQUIVO_LOG_SALVO", "Arquivo de log salvo com sucesso na pasta: " + root.getPath().toString());  
            }

fallow