2017-08-23 3 views
0

J'ai une application Android dans laquelle j'envoie des journaux à un serveur de journalisation.Android-Java | SimpleDateFormat & URL changer les caractères en fonction de la langue du périphérique

Pour créer l'index J'utilise un identificateur de chaîne statique et date:

indexofapp-20170823

Mais pour une raison quelconque, parfois l'indice arrivent avec des personnages étranges à la date:

indexofapp- ㅢ ㅂ ㅢ ㅀ ㅢ ㅁ ㅢ ㅇ ㅢ ㅀ ㅢ ㅆ ㅢ ㅁ ㅢ ㅂ

C'est la façon dont je construis la date et l'URL:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sssZ"); 

df = new SimpleDateFormat("yyyyMMdd"); 
String date = df.format(new Date()); 

String urlString = Values.URL.ELASTICACHE; 

URL url = new URL(urlString + "/indexofapp-" + date + "/" + logType + "/"); 

Je soupçonne que peut-être certains appareils Android configurés dans une autre langue sont en train de changer les personnages ... c'est RUPTURE notre serveur journal, tout Aidez-moi?

+2

Avez-vous essayez de passer Locale.ENGLISH dans le constructeur SimpleDateFormat comme - nouveau SimpleDateFormat ("yyyy-MM-dd » T'HH: mm: ss.sssZ ", Locale.ENGLISH)? –

+0

Si vous n'utilisez pas la première ligne de SimpleDateFormat, supprimez-le. DateFormat df = new SimpleDateFormat ("yyyyMMdd", Locale.ENGLISH); Chaîne date = df.format (new Date()); –

Répondre

0

Vous n'avez pas besoin de créer l'index vous-même, logstash le crée pour vous s'il n'existe pas.

Voici une configuration logstash de l'échantillon pour atteindre cet

input { 
    <Your Input Plugin> 
} 

filter { 
    <Optional Filters> 
} 

output { 
    elasticsearch { 
    hosts => ["<Elasticsearch IP>:<Elasticsearch Port>"] 
    index => "indexofapp-%{+YYYYMMdd}" 
    } 
} 

Voir here pour plus de détails