Re: gérer des fichiers log

Liste des GroupesRevenir à fco unix 
Sujet : Re: gérer des fichiers log
De : schaefer (at) *nospam* alphanet.ch (Marc SCHAEFER)
Groupes : fr.comp.os.unix
Date : 24. Sep 2021, 19:21:29
Autres entêtes
Organisation : Posted through ALPHANET (https://news.alphanet.ch/)
Message-ID : <sil1ep$9g5$1@shakotay.alphanet.ch>
References : 1 2 3 4 5 6 7 8 9
User-Agent : tin/2.4.3-20181224 ("Glen Mhor") (UNIX) (Linux/4.19.0-17-amd64 (x86_64))
Thomas <fantome.forums.tDeContes@free.fr.invalid> wrote:
tu as déjà programmé en Ada, et maintenant tu développes de l'embarqué
en C ?

Oui, et je précise: C, pas C++.

Mes langages préférés sont: Perl, C, bash.

dans la note 7, ça parle de trucs que je ne connais pas, et pas un mot
sur $HOME, même pas en mal !
est ce que $HOME est suffisamment fiable et portable quand même ?


mais au fait, peut être considères-tu que les applications ne devraient
juste pas essayer de s'en mêler, et que c'est aux intégrateurs de faire
l'interface via le wrapper script ?

J'ai assez tendance à aimer le `convention over configuration', tout en
laissant possible de configurer si on a envie.

(sais tu si elles avaient de bonnes raisons de le faire ?)

Non, je ne me suis pas trop intéressé à ça.

Quel format texte?  Totalement égal si je peux le générer avec un
template.
 
ok,
connais-tu un endroit (tutoriel ?) qui explique comment fonctionnent les
templates ?

Exemple en bash:

cat > fichier <<EOF
variable=$ma_variable
EOF

Exemple plus compliqué qui génère des lettres depuis une base de
données, en Perl:

      make_latex("template", "out.tex",
                 'CHER' => (($row[0] eq 'M') ? 'Cher' : 'Chère'),
                 'ADRESSE' => $a,
                 'SOMME' => $s,
                 'PRENOM' => $p,
                 'APAYER' => ($s > 0) ? 'true' : 'false');

avec un fichier template qui ressemble à:

\opening{%CHER% %PRENOM%,}

...

Exemple en Perl Mojolicious via TemplateToolkit qui génère de l'HTML:

<form action="/config" method="post">
   <label>Filtre d'&eacute;metteur
      <select name="from">
      % foreach my $f (@{$filters}) {
         <option value="<%= $f->id %>"<%= ($f->id eq $current_filter->{'from'}) ? " selected" : "" %>><%= $f->name %></option>
      % }
      </select>
   </label>
   <label>Filtre de thread
      <select name="thread">
      % foreach my $f (@{$filters}) {
         <option value="<%= $f->id %>"<%= ($f->id eq $current_filter->{'thread'}) ? " selected" : "" %>><%= $f->name %></option>
      % }
      </select>
   </label><br>
   <input type="submit">
</form>

---> SI C'EST DU TEXTE, J'AIME!

sauf que la partie cli aussi risque d'avoir besoin du fichier de config
(une suggestion ?)

des valeurs par défaut s'il n'y a pas de config, p.ex. en dur
$HOME/nom-app/log etc.

ah oui, tu disais ça en lien avec le file-browser ?

C'est toi qui as dit que ton file browser dans ton code changeait de
répertoire courant. Ou c'est ce dont je me rappelle.

je me demande ce qu'il peut y avoir comme pb quand par exemple 2
instances veulent modifier le même fichier ...

Il existe des verrous, et on peut informer l'utilisateur si c'est une
erreur de l'utilisateur. Si c'est le fonctionnement même de
l'application d'écrire dans le même fichier, ça semble un bug de
l'application?

Comme quoi faire du GUI *et* de la ligne de commande c'est compliqué.
 
veux tu dire que tu recommandes de tjr lancer les applications GUI
depuis un bureau GUI et pas depuis un terminal ?

Non, ça c'est égal.

Ce que je voulais dire est que de faire une application qui se comporte
comme j'ai envie en ligne de commande (avec des paramètres adaptés, etc)
et aussi en GUI est probablement complexe.


Du point de vue de ton application, il est possible que l'écriture dans
ces fichiers retourne une erreur, oui.
 
ah bon ?
concrètement, dans quels cas ça peut arriver ?

Disque plein?  Si ce sont des logs ce n'est pas grave. Si ce sont des
données, il faut gérer l'erreur.

d'après le reste du fil, j'ai cru comprendre que tu préférais plutôt que
mon logiciel ne fasse pas de fichiers de log.

Oui, si c'est pour que personne ne les lise jamais ...

donc par exemple : s'il y a un pb à la lecture du fichier de config, je

Tu peux écrire sur stderr "pas trouvé la config", ou, si le programme a
été lancé sans arguments de ligne de commande, supposer qu'il a été
lancé en GUI et là ouvrir un dialogue.

tu considères que si on dit dans le fichier de config qu'on veut des
fichiers de log, alors ils doivent être vraiment faits ?

Comme disait quelqu'un d'autre, on peut aussi imaginer d'activer ou non
le logging et le debugging.

que me suggères tu à cette étape ? :-)

les erreurs il faut les communiquer à l'utilisateur, soit sous forme
d'un dialogue (GUI) soit sous forme d'une écriture dans stderr.

Les diagnostics de l'applications peuvent aller dans stdout ou dans un
fichier de log, mais peut-être qu'il faudrait les activer explicitement
dans la config.

Date Sujet#  Auteur
19 Sep 21 * Re: gérer des fichiers log18Thomas
20 Sep 21 `* Re: gérer des fichiers log17Marc SCHAEFER
24 Sep 21  `* Re: gérer des fichiers log16Thomas
24 Sep 21   +* Re: gérer des fichiers log4Marc SCHAEFER
26 Sep 21   i`* Re: gérer des fichiers log3Thomas
26 Sep 21   i `* Re: gérer des fichiers log2Marc SCHAEFER
28 Sep 21   i  `- Re: gérer des fichiers log1Thomas
24 Sep 21   `* Re: gérer des fichiers log11Stéphane CARPENTIER
26 Sep 21    `* Re: gérer des fichiers log10Thomas
26 Sep 21     `* Re: gérer des fichiers log9Stéphane CARPENTIER
27 Sep 21      +* Re: gérer des fichiers log7Thomas
1 Oct 21      i`* Re: gérer des fichiers log6Stéphane CARPENTIER
22 Oct 21      i `* Re: gérer des fichiers log5Thomas
19 Dec 21      i  `* Re: gérer des fichiers log4Thomas
28 Dec 21      i   +- Re: gérer des fichiers log1Thomas
28 Dec 21      i   `* Re: gérer des fichiers log2Stéphane CARPENTIER
2 Jan 22      i    `- Re: gérer des fichiers log1Thomas
17 Sep 22      `- tags pour les logs1Thomas

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal