Hello AutoFS developers,
I'm trying to improve the usefulness of "verbose" logs for a customer.
The problem they currently face can be summarized as: they need some
messages that are only logged with DEFAULT_LOGGING="verbose" (or debug),
but enabling the verbose mode on busy servers (hundreds of users and
AutoFS mount points) causes a significant traffic increase on their
syslog infrastructure.
My first idea was to introduce a new log level ("normal") and move the
most important messages from "verbose" to "normal", but I realized later
that this would require some redesign to allow some info() messages to
be printed only on "verbose" mode. Since this would be more intrusive,
I decided to go with a simpler proposal: move some "verbose" messages
to "debug" level. Here are some examples of messages that would be
demoted to debug (prefixed with -):
Successful mount:
14:49:13 n1 automount[1013]: attempting to mount entry /v/temp
-14:49:13 n1 automount[1013]: mount(nfs): mounted libre:/temp on /v/temp
14:49:13 n1 automount[1013]: mounted /v/temp
Invalid map:
14:51:15 n1 automount[1013]: attempting to mount entry /v/no
-14:51:15 n1 automount[1013]: key "no" not found in map source(s).
14:51:15 n1 automount[1013]: failed to mount /v/no
Expiring mount:
15:00:23 lotus automount[1013]: expiring path /v/temp
-15:00:23 lotus automount[1013]: unmounting dir = /v/temp
15:00:23 lotus automount[1013]: expired /v/temp
Please, could you consider the patch below for upstream inclusion?
Thanks,
Leonardo
Index: autofs/daemon/lookup.c
===================================================================
--- autofs.orig/daemon/lookup.c
+++ autofs/daemon/lookup.c
@@ -688,7 +688,7 @@ static int lookup_name_file_source_insta
char *type, *format;
if (stat(map->argv[0], &st) == -1) {
- warn(ap->logopt, "file map not found");
+ debug(ap->logopt, "file map not found");
return NSS_STATUS_NOTFOUND;
}
@@ -826,8 +826,8 @@ static void update_negative_cache(struct
*/
cache_unlock(me->mc);
else {
- /* Notify only once after fail */
- logmsg("key \"%s\" not found in map source(s).", name);
+ debug(ap->logopt,
+ "key \"%s\" not found in map source(s).", name);
/* Doesn't exist in any source, just add it somewhere */
if (source)
Index: autofs/daemon/automount.c
===================================================================
--- autofs.orig/daemon/automount.c
+++ autofs/daemon/automount.c
@@ -512,7 +512,7 @@ static int umount_subtree_mounts(struct
* it already to ensure it's ok to remove any offset triggers.
*/
if (!is_mm_root && is_mounted(_PATH_MOUNTED, path, MNTS_REAL)) {
- info(ap->logopt, "unmounting dir = %s", path);
+ debug(ap->logopt, "unmounting dir = %s", path);
if (umount_ent(ap, path)) {
warn(ap->logopt, "could not umount dir %s", path);
left++;
Index: autofs/modules/mount_changer.c
===================================================================
--- autofs.orig/modules/mount_changer.c
+++ autofs/modules/mount_changer.c
@@ -129,7 +129,7 @@ int mount_mount(struct autofs_point *ap,
return 1;
} else {
- info(ap->logopt, MODPREFIX "mounted %s type %s on %s",
+ debug(ap->logopt, MODPREFIX "mounted %s type %s on %s",
what, fstype, fullpath);
return 0;
}
Index: autofs/modules/mount_ext2.c
===================================================================
--- autofs.orig/modules/mount_ext2.c
+++ autofs/modules/mount_ext2.c
@@ -140,7 +140,7 @@ int mount_mount(struct autofs_point *ap,
return 1;
} else {
- info(ap->logopt,
+ debug(ap->logopt,
MODPREFIX "mounted %s type %s on %s",
what, fstype, fullpath);
return 0;
Index: autofs/modules/mount_generic.c
===================================================================
--- autofs.orig/modules/mount_generic.c
+++ autofs/modules/mount_generic.c
@@ -122,7 +122,7 @@ int mount_mount(struct autofs_point *ap,
return 1;
} else {
- info(ap->logopt, MODPREFIX "mounted %s type %s on %s",
+ debug(ap->logopt, MODPREFIX "mounted %s type %s on %s",
loc, fstype, fullpath);
free(loc);
return 0;
Index: autofs/modules/mount_nfs.c
===================================================================
--- autofs.orig/modules/mount_nfs.c
+++ autofs/modules/mount_nfs.c
@@ -251,7 +251,7 @@ int mount_mount(struct autofs_point *ap,
}
if (!err) {
- info(ap->logopt, MODPREFIX "mounted %s on %s", loc,
fullpath);
+ debug(ap->logopt, MODPREFIX "mounted %s on %s", loc,
fullpath);
free(loc);
free_host_list(&hosts);
return 0;
_______________________________________________
autofs mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/autofs